ich hab ein auf meiner homepage ein formular erstellt und möchte das sich das jetzt in eine datenbank einträgt. leider hab ich von php nur wenig und von MySQL gar keine ahnung...
also, die fragen:
1.wie trägt man passwort,radio und checkbox felder in die php-datei ein? (texte hab ich)
2.wie überträgt man die antworten dann von php in die MySQL Datenbank?
3.wenn man auf abschicken klickt, erscheint bis jetzt immer die ausgabe der php-datei. wie krieg ich das hin, das da eine meldung à la "Ihre Einträge wurden gespeichert" steht.(Im prinzip reicht 'ne weiterleitung auf eine formular-abgeschickt.htm)
so, das war's auch schon
ich hoffe ihr könnt mir helfen, denn das ist ganz wichtig für mich
Vielen Dank schonmal!
--
"Champagner und Weltrevolution" (Heinrich Heine]
"Seien wir realistisch, fordern wir das Unmögliche" (Ernesto 'Che' Guevara)
"Entscheiden können wir nur, was wir mit der Zeit, die uns gegeben ist, anfangen." (Gandalf)
Du legst erstmal mit "action" fest, wohin die Formulardaten übertragen werden soll und mit "method" wie sie übertragen werden.
Mit "method='get'" werden die Daten an die URL angehängt, was aber bei größeren Datenmengen zu Problemen führt, da die maximale Größe der URL 2 KB nicht überschreiten darf. Deswegen greift man zu "method='post'". Nehmen wir an, die willst die Formulardaten an die Datei eintragen.php übergeben.
Du kannst jetzt in der eintragen.php die Werte von feld1 und pw folgendermaßen ansprechen.
Das selbe gilt für Checkboxen und Radiobuttons, du musst nur den Wert für "name=''" setzen, damit du es ansprechen kannst über PHP. In dem Fall ist dann der Wert, der für "value=''" gesetzt wurde, dass was sich PHP holt.
Wenn du die Werte jetzt in deine Datenbank schreiben willst, sieht das ganze wie folgt aus in der eintragen.php.
Schattenbaum bietet ein nettes Tutorial für Anfänger in Sachen PHP und MySQL.
danke, hat soweit auch alles geklappt. nur nachdem ich noch mehr variablen in das php script eingefügt hab, funktioniert es nicht mehr. die datenbank bekommt keine neuen daten...
hier mal mein verändertes script:
was ist daran falsch? oder muss ich die datenbank noch anders konfigurieren? also, die felder sind in der tabelle alle vorhanden, oder kann es daran liegen, das noch welche frei sind?
--
"Champagner und Weltrevolution" (Heinrich Heine]
"Seien wir realistisch, fordern wir das Unmögliche" (Ernesto 'Che' Guevara)
"Entscheiden können wir nur, was wir mit der Zeit, die uns gegeben ist, anfangen." (Gandalf)
Bei der $insert Variablen müssen die exakten Feldnamen der MySQL Tabelle angegeben werden, wenn sie dort klein geschrieben sind, musst du sie im PHP Script auch klein schreiben.
Ein Feld in der MySQL Datenbank solltest du ID nennen und es auf auto_increment setzen, damit hat jeder Datensatz eine eindeutige ID.
Wenn du allerdings sagst, dass die Ausgabe der $_POST Variablen nicht funktioniert, dann vermute ich, liegt es an der Übergabe vom Formular. Scheint so als ob das PHP Script keine Daten bekommt.
Wenn du allerdings sagst, dass die Ausgabe der $_POST Variablen nicht funktioniert, dann vermute ich, liegt es an der Übergabe vom Formular. Scheint so als ob das PHP Script keine Daten bekommt.
...
doch, das bekommt daten. mit nicht funktionieren meinte ich nur, das das übermitteln an die datenbank nicht klappt, auch wenn die post variablen noch da stehen. ich hab die nur gelöscht, weil ich nicht möchte, das man nach dem abschicken nochmal seine einträge sieht...
Zitat
Ein Feld in der MySQL Datenbank solltest du ID nennen und es auf auto_increment setzen, damit hat jeder Datensatz eine eindeutige ID.
...
wenn ich das mache, meldet MySQL: #1063 - Incorrect column specifier for column 'ID'
--
"Champagner und Weltrevolution" (Heinrich Heine]
"Seien wir realistisch, fordern wir das Unmögliche" (Ernesto 'Che' Guevara)
"Entscheiden können wir nur, was wir mit der Zeit, die uns gegeben ist, anfangen." (Gandalf)
Gut, dann ist der Fehler hinsichtlich Übergabe Formular -> PHP Script auszuschließen.
Dann tippe ich stark auf die falschen Feldnamen der MySQL Datenbank, wenn in der Datenbank z.B. das Feld "vorname" klein geschrieben wird, dann musst du an dieser Stelle
das Feld mit dem exakten Namen (Groß- und Kleinschreibung beachten) ansprechen. Ansonsten überprüfen, ob Benutzername, Passwort und Datenbankname richtig sind.
Hmpf.. leider kann ich dir nicht mehr helfen, außer dir zu sagen, dass du
deinem Newsscript anhängen solltest, vielleicht gibt das genauere Informationen zum Fehler aus.
Achja, das
kannst du dir sparen, da die Variablen automatisch unter $Variablenname abgespeichert werden. Zumindest bei meiner PHP-Version.
Original geschrieben von Latency kannst du dir sparen, da die Variablen automatisch unter $Variablenname abgespeichert werden. Zumindest bei meiner PHP-Version.
...
Nein, um Gottes Willen. Das darf er sich nicht sparen. Erstens kann es zu Verwirrung führen und zweitens ist es eine Sicherheitslücke so zu scripten. Ich empfehle mit ausgeschalteten register_globals zu scripten, so werden Scripte automatisches ein kleines bisschen sicherer.
Ich kann das jetzt nicht genau erklären, bin net so gut in sowas, aber informiert euch am besten selber über register_globals und die daraus folgenden Sicherheitslücke. ô_ô.
Original geschrieben von Dingsi Nein, um Gottes Willen. Das darf er sich nicht sparen. Erstens kann es zu Verwirrung führen und zweitens ist es eine Sicherheitslücke so zu scripten. Ich empfehle mit ausgeschalteten register_globals zu scripten, so werden Scripte automatisches ein kleines bisschen sicherer.
Ich kann das jetzt nicht genau erklären, bin net so gut in sowas, aber informiert euch am besten selber über register_globals und die daraus folgenden Sicherheitslücke. ô_ô.
...
Ach dazu braucht man die Register globals. Ich wusste nur, dass ich sie aktivieren musste damit meine Include Scripte laufen, wozu ich sie brauche hat mir nie jemand gesagt, aber nachher ist man immer schlauer
erstmal nochmal: danke!
ich habe die fehlerausgabe eingebaut und anscheinend hat ihn der Bindestrich bei "E-Mail" gestört. Hab jetzt "Mail" eingegeben und es funktioniert wunderbar!
nun hab ich aber noch radio und checkbox felder eingefügt und wie dreadlord gesagt hat, nicht den name sondern den value eintrag als variable zu nehmen.
es geht aber nicht. der rest wird wie gewohnt angezeigt, diese sind in der datenbank jedoch leer. und ein fehler wird auch nicht gemeldet...
hier noch mal der code mit den radio und checkbox teilen:
der dazu passende html-code steht schon weiter oben. da waren diese felder schon mit drin. die einträge von cs bis veröffentlichen sind's. in der datenbank hab ich sonst nichts anderes eingetragen. den gleichen typen wie auch bei textfelder. falsch? welchen muss ich nehmen?
--
"Champagner und Weltrevolution" (Heinrich Heine]
"Seien wir realistisch, fordern wir das Unmögliche" (Ernesto 'Che' Guevara)
"Entscheiden können wir nur, was wir mit der Zeit, die uns gegeben ist, anfangen." (Gandalf)
$veröffentlichen
Variablen-Namen dürfen nur aus alphanumerischen Zeichen und Unterstrichen bestehen -> keine Sonderzeichen und Umlaute. Ich denke das wär das Problem schonmal. o-o
Ah, ne.
Qutasch. $_POST['veröffentlichen']. Die Radiobox heißt doch akzeptiert, also muss es auch $_POST['akzeptiert'] sein.
Original geschrieben von pogo aber das ist doch der name für die ganze gruppe? muss da nicht der von dem einzelnen stehen? sonst käme ja die ganze gruppe in ein feld...
...
nein. in die variable kommt ja immer nur das rein, was in dieser gruppe ausgewählt wurde. das ist doch der sinn von radioboxes... das auswählen eines wertes. die nicht ausgewählten boxen/boxes (? O_o) werden ignoriert..