Fragen zu Formularen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
absenden
angeben
code
dank
datenbank
datum
eintragen
email
feld
formular
gesetzt echo
grad
http
machen
nachname
senden
umsetzen
url
verbindung
vorname
-
Hallo!
Beispiel: ich registriere mich auf www.xyz.de und vergesse dort ein Pflichtfeld auszufüllen.
Dann ist es oft so, das auf der Seite oben eine Fehlermeldung erscheint, die mir sagt was ich noch ausfüllen muss. Und unten, direkt anschliessend, sehe ich dann das Registrierungsformular
Ausserdem, bleiben oft die alten Daten, die ich zuvor eingetragen habe, erhalten.
Wie macht man denn sowas? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Das lässt sich mit PHP und html umsetzen.
Falls du dich damit nicht auskennst, dann kannst du PHP auf http://www.schattenbaum.net/php erlernen.
Ist dort sehr einfach erklärt.
Der Datenerhalt geschieht in der Regel bei der Post-Methode automatisch.
Ist dieses Anmeldeformular über mehrere Seiten, sollte man wohl mit einer Session arbeiten.
Beitrag zuletzt geändert: 20.1.2009 13:34:00 von karpfen -
Oh super danke die seite werd ich mir mal reinziehen schaden kann es nicht :) Meine PHP kenntnisse sind nicht grad hervorraagend, aber es wird =) .
Naja. Ich meine. Wenn man sich wo registrierst, musst man oft erst mal 20 Felder ausfüllen. Dann vergisst man aber ein Pflichtfeld und drückt auf absenden.
Sagt mir das Ding Ich soll dies und jenes noch ausfüllen. Also gehe ich zurück. Und muss meist ALLE felder ausfüllen. Genau DAS bekomme ich hin.
Was ich will ist, wenn der User mein Formular ausfüllt, und dann ein Feld vergisst, aber abschickt, dann sollen die Daten vom User, die er schon angegeben hat noch im Formular sein. Und oben soll dann eine Meldung kommen WAS er nicht ausgefüllt hat.
Ach: falls es nich verständlich war, sorry. Also ich hab das formular, und die php schon soweit fertig. Die Daten werden an die Datenbank geschickt. Ich will nur noch das oben beschriebene, damit es benutzerfreundlich wird =)
Beitrag zuletzt geändert: 20.1.2009 13:47:14 von nadsche -
du speicherst die Werte die beim absenden in den Felder sind ganz einfach in variabel. kontrollierst ob diese dann auch alle ausgefüllt sind, wenn ja dann gehts weiter sonst soll er zurück verlinkt werden und anschliessend schreibst du in die felder die Werte deiner Variablen
-
Das sieht dann in etwa so aus:
<?php function showForm($msg) { if (!empty($msg)) { echo '<div>Es sind folgende Fehler aufgetreten:<br />'.$msg; } // durch die Value Angaben werden evt. übermittelte Werte als Vorgabe gesetzt echo "<form action='' method='post'>\n Name: <input name='surname' value='".$_POST['surname']."'> (benötigt)<br />\n Vorname: <input name='firstname' value='".$_POST['firstname']."'> (benötigt)<br />\n <input type='submit' id='senden' name='senden'>\n </form>\n"; } // Verarbeitung der Formulareingaben $error = ""; if (!empty($_POST['senden']) and empty($_POST['surname'])) $error .="Sie müssen Ihren Nachnamen angeben!<br />"; if (!empty($_POST['senden']) and empty($_POST['firstname'])) $error .= "Sie müssen Ihren Vornamen angeben!<br />"; if (!empty($_POST['senden']) and empty($error)) { echo 'Daten waren vollständig... hier könnte auch zum nächsten Form gesprungen werden...'; } else { showForm($error); } ?>
Grüßle
Beitrag zuletzt geändert: 20.1.2009 14:19:44 von scout -
Danke scout =) .
Ich krieg die daten nur irgendwie nicht in die Datenbank. da muss ich noch ein wenig rumspielen -
Ist eigentlich ganz easy... schau doch einfach mal hier nach, da ist es einfach erklärt: http://tut.php-quake.net/de/mysql-php.html
-
tibel schrieb:
Ist eigentlich ganz easy...
theoretisch ja, ich hab mich jetzt weiter gespielt. also die Befehle kenne ich eigentlich. Bin nur nicht sicher, WO in Scouts code, der teil hin muss, wo PHP die formulardaten in die DB schreibt -
Da, wo steht:
echo "Daten waren vollständig...";
Denn du willst es ja (nur) eintragen, wenn alles vollständig ist. -
Das klingt gut. Das hab ich nämlich vorhin schon mal gemacht. Das Echo kam dann auch, aber in der Datenbank war nichts. Na. Jetzt wo ich sicher weiss dass ich da richtig bin, überarbeite ich das. Kann ja nicht so schwer sein
if (!empty($_POST['senden']) and empty($error)) { $verbindung = @mysql_connect($host, $user, $pass); mysql_select_db($database, $verbindung); $sql = "INSERT INTO $table VALUES ('$name', '$mail')"; echo 'Daten waren vollständig...'; } else { showForm($error); }
So hab ich das jetzt gemacht, die variablen hab ich alle deklariert
Am ende kommt dann das echo. Aber in der datenbank ist nix
Beitrag zuletzt geändert: 21.1.2009 12:39:29 von nadsche -
$sql = "INSERT INTO $table VALUES ('$name', '$mail')";
Hier wird nur eine Variable gesetzt aber noch nichts in die DB geschrieben, dazu musst du glaub sowas wie:
mysql_query($sql, $db);
nach der Zeile oben einbauen, bin mir abeer auch nicht 100% sicher ob das syntaktisch korrekt ist, hab mir eine Klasse gebastelt die das macht deshalb hab ich nicht mehr so viel mit SQL-Querys zu tun (und grade keine lust was rauszusuchen) -
So, mittlerweile hab ich den fehler gefunden. Trotzdem Danke
so ich versuch das auch grad und frag mach was da dran falsch ist:
if (!empty($_POST['Anmelden']) and empty($error)) { $verbindung = @mysql_connect($dbHost, $dbUser, $dbPass); mysql_select_db($dbName, $verbindung); mysql_query("INSERT INTO User (Username, Passwort, Email, HP, Anmeldedatum) VALUES (''.$username.'', ''.$passwort.'', ''.$email.'', ''.$hp.'', ''.NOW().'')") echo 'Ihre Daten waren vollständig!'; }
Ich hab auch alle variablen benannt, aber es steht immer da:
Parse error: syntax error, unexpected T_ECHO in /home/webpages/lima-city/moonfight/html/anmeldung5.php on line 83
Line 83 ist die: mysql_select_db($dbName, $verbindung);
Schon mal danke im vorraus
Beitrag zuletzt geändert: 23.1.2009 21:54:06 von moonfight -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage