kostenloser Webspace werbefrei: lima-city


Fragen zu Formularen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    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?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    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
  5. 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
  6. 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
  7. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    Danke scout =) .

    Ich krieg die daten nur irgendwie nicht in die Datenbank. :confused: da muss ich noch ein wenig rumspielen
  8. 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
  9. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    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
  10. Da, wo steht:
    echo "Daten waren vollständig...";

    Denn du willst es ja (nur) eintragen, wenn alles vollständig ist.
  11. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    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&auml;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
  12. projektverwaltung

    projektverwaltung hat kostenlosen Webspace.

    $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)
  13. m*******t

    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
  14. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!