kostenloser Webspace werbefrei: lima-city


Formulareingaben sollen erhalten bleiben

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    Hallo! Ich hoffe ihr könnt mir helfen.
    Also ich programmiere grade ein kleines Spiel.

    Der User gibt Daten in ein formular ein, die werden dann mit $_POST ausgewertet. Dazu habe ich 2 dateien, eine html und eine php datei.

    Es gibt 15 felder zum ausfüllen bzw radiobuttons sind auch dabei. mit
    if ($name == "" OR $gender == "") {
    echo "Fülle alle felder aus <a href='formular.htm'>Zurück</a>";
    }
    else {
    #Hier folgt dann der rest, den er ausführen soll, wenn alles angegeben wurde
    }


    So, der angenommen der User füllt 14 von 15 feldern aus, kommt auf die fehler seite und klickt den zurücklink an. Dann müsste er alle felder von neu ausfüllen. Habe aber in registrierungsformularen und so schon gesehen, dass die eingaben bleiben.

    Ich hab google gequält, aber ich krieg es einfach nicht hin.

    Beitrag zuletzt geändert: 5.2.2009 19:00:03 von nadsche
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Das Stichwort ist SESSION.

    Allerdings bleiben bei mir die Formulardaten auch erhalten, wenn das Formular nur über eine Seite geht.

    Allerdings müsstest du dem Textfeldern die $POST-Variable als Inhalte (value) übergeben!
  4. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    bei mir bleiben sie erhalten wenn ich im browser auf den zurückbutton gehe, bzw wenn ich im formular nur F5 drücke, wenn ich aber KOMPLETT neu lade mit STRG+F5, oder besagten link anklicke, sind die daten weg. okay.. session *doofgrins*, müsste ich mir anschaun.

    Beitrag zuletzt geändert: 5.2.2009 19:02:18 von nadsche
  5. Wenn du mit STRG-C lädst, dann bleiben die Daten aber auch vermutlich bei der Session nicht erhalten.
    Das macht der Normaluser aber auch nicht. Wenn du deinen Cache geleert hast, dann bringen dir die Sessions auch nix mehr :D Dann wird nämlich eine neue gestartet.
  6. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    ja das leuchtet ein =) . Also, meinst du, ist mein vorhaben nicht nötig? theoretisch könnte ich mit javascript einen backlink machen, der das selbe wie der Browser eigene zurückbutton macht, Müsste doch dann eigentlich so sein wie es soll.

    Das geh ich mal probieren...
  7. Wieso einen Javascript-Link basteln, wenn es diese Option in jedem Browser gibt.? Versteh ich nun nicht wirklich. Dann hast du zweimal das Gleiche, nur auf verschiedene Wege.

    Sessions sind vor allem gut, wenn das Formular über mehrere Seiten geht.
  8. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    *in ecke geh* ich weiss nicht so genau...

    alsoo das formular geht ja nicht über mehrere seiten. hmm ja du hast recht.. es tut ja schon das was es soll. *verwirrtbin*

    Okay... naja mal was anderes. Also... Die fehlerausgabe, die kommt, wenn man was vergessen hat auszufüllen, die steht dann ganz verlassen auf einer seite wo sonst nix ist. Wie kann ich diese fehlermeldung an den anfang des Formulars schicken? geht das überhaupt, wenn das Formular auf einer eigenen seite ist? und wenn ja sind die eingegebenen daten immer noch da?

    sind bestimmt total die dummen fragen lol, aber ich bin ja totaler neuling

    Beitrag zuletzt geändert: 5.2.2009 19:11:51 von nadsche
  9. Man kann die Daten des Formulars an sich selbst übergeben auch. Dann hat man nur eine einzige Seite.
    Ich löse das meist so, dass ich das Formular eben wieder aufrufe und im Fehlerfall die Textfelder mit einer Hintergrundfarbe (z.B. ROT) fülle.
    Das macht irgendwie den besseren Eindruck, als eine weitere Fehlerseite.

    Wie man das Formular erneut aufruft kannst du hier sehen:

    <FORM action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  10. Das kannst du auch so machen:

    <?php
    function formularausgeben(){
      //...
      echo "<input type='text' name='name' value=".$_POST['name'].">";
     //...
    }
    
    // Das gesendete Auf fehler prüfen
    //...
    
    if($error || !isset($_POST['gesendet'])){
      formularausgeben();
    } else {
      echo "alles hat geklappt";
    }
    ?>


    Du gibst das Formular einfach dann aus, wenn es Fehler enthält, oder wenn es noch garnicht abgeschickt wurde.

    Grüße,
    Prog
  11. t*****b

    <?php
     if(isset($_POST["senden"] == "absenden")) {
      if(empty($_POST["eingabe"])) {
       echo "musst alles ausfüllen";
     } else {
      echo "alles ok, weiterarbeiten...";
     }
    }
    ?>
    
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
    <input type="text" name="eingabe" value="<?php echo $_POST["eingabe"]; ?>" />
    <input type="submit" name="senden" value="absenden" />
    </form>


    Macht jetzt bei einem Feld nicht wirklich Sinn, aber so kann mans machen. Nach dem Absenden erscheint bei Eingabe "alles ok, weiterarbeiten..." und der Ausgeüllte Wert des Inputfeldes wird übernommen.
  12. Du könntest die Post-Variablen auch einfach direkt verwenden, ich mach dir mal ein Beispiel:


    if($formulareingabe_korrekt) {
    // eintragund in DB
    echo "Anmeldung erfolgreich!";
    } else {
    echo "Bitte Formular korrekt ausfüllen!";
    // formularbeginn
    echo 'Name: <input type="text" name="name" value="'.$_POST['name'].'" />';
    // weitere eingabefelder
    // sede-button und Formularende
    }



    Natrülich musst du z.B. die Bedingung ersetzen. Aber der Struktur solltest du übernehmen.




    mfg

    drafed-map
  13. drafed-map schrieb:
    Du könntest die Post-Variablen auch einfach direkt verwenden, ich mach dir mal ein Beispiel:


    Klar geht das, nur das ist etwas blöd, da dem Nutzer das bereits korrekt ausgefüllte und abgeschickte Formular wieder angezeigt wird. So klickt der Nutzer schnell nochmal auf abschicken.

    Grüße,
    Prog
  14. prog schrieb:
    drafed-map schrieb:
    Du könntest die Post-Variablen auch einfach direkt verwenden, ich mach dir mal ein Beispiel:


    Klar geht das, nur das ist etwas blöd, da dem Nutzer das bereits korrekt ausgefüllte und abgeschickte Formular wieder angezeigt wird. So klickt der Nutzer schnell nochmal auf abschicken.

    Grüße,
    Prog




    Genau das wird damit doch verhindert. Bei Sessions würde das passieren, wenn man vergessenw ürde die Variablen zu löschen, aber auf die von mir beschriebene Methode werden die Formulareingaben nur gezeigt, wenn das Formular nicht korrekt ausgefüllt wurde.




    mfg

    drafed-map
  15. Sorry, hab den Falschen Zitiert. Ich meinte den Code von trueweb. Nur gegen das Neuladen im Browser hilft leider beides nichts. Da muss man dann auch noch weiterleiten.

    Grüße,
    Prog
  16. Autor dieses Themas

    nadsche

    nadsche hat kostenlosen Webspace.

    Wow da guggt man mal nich ins forum, gibts so viele antworten. Ich schau mir eure lösungen alle durch =) danke schön
  17. t*****b

    prog schrieb:
    Sorry, hab den Falschen Zitiert. Ich meinte den Code von trueweb. Nur gegen das Neuladen im Browser hilft leider beides nichts. Da muss man dann auch noch weiterleiten.

    Grüße,
    Prog


    Man muss sich auch nicht um jeden DAU kümmern. Wer Formulare ausfüllt und die Seite refreshed ist selber schuld.
    Ich sehe keinen Sinn daran, Sessions zu verwenden wenn man die Daten ja auch in $_POST hat, außer man will eine weitere extra Seite dazwischen schalten, dann müssen Sessions verwendet werden.
  18. 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!