Java - PHP Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Java - PHP Problem

    Hallo Leute,

    ich habe auf meiner Homepage ein Anmeldeformular mit ein paar Feldern für die User, welche diese ausfüllen müssen (Name, Alter usw.). Wenn die User dann auf "Anmelden" klicken, nachdem Sie alle Daten eingegeben haben, kommen Sie auf eine neue Seite, wo bei korrekter Eingabe aller Daten (Name, Alter usw.) steht, dass Sie Ihre Login-Daten an Ihre Email-Adresse bekommen. Wenn jedoch ein Feld falsch ausgefüllt oder vergessen wurde, kommen Sie auch auf diese Seite, jedoch steht da dann, was Sie falsch eingegeben haben - also der Fehler.

    Jetzt mein Problem: Ich habe dann ein "zurück" unter der Fehlermeldung eingebaut. Diese "zurück" realisierte ich mit javascript:historie.back()
    Die User kommen dann wieder auf das Anmeldeformular, jedoch sind alle getätigten Eingaben, die der User tat, weg - die Felder sind leer und er kann wieder von vorne anfangen (mit dem ausfüllen, also mit der Anmeldung).

    Gibt es eine Lösung, dass die zuvor eingegebenen Daten in den Feldern bleiben, gibt es eine andere Methode, dass "zurück" zu realisieren???

    DANKE IM VORAUS FÜR TIPPS UND HILFEN!!!

    Gruß
    Sven.

  • #2
    Das liegt am Browser, hatte ich vorhin auch, hat IE6 da ne Macke? Aber nur bei manchen Formularen... Am sichersten fährst Du natürlich, wenn Du statt einer Fehlermeldung das gleiche Formular nochmal ausgibst, mit dem falsch ausgefülltem Feld rot hinterlegt oder so.

    Kommentar


    • #3
      Ich hab nur ne komplizierte Lösung - es gibt sicher auch nen einfachen Befehl - Ok kompliziert ist meine Lösung auch nicht aber ein Versuch:

      Also mal angenommen Du hast nur 1 Feld in Deinem Formular - Vorname würd die Seite mit dem Formular so aussehen:
      PHP-Code:
      <? session_start(); ?>

      <form method=POST action=check.php>
      <table ...>

      <?
      if(empty($vname)){
        echo "<tr>";
        echo "<td>Vorname:</td>";
        echo "<td><input type=text name=vname></td>";
        echo "</tr>";
      }
      else{
        echo "<tr>";
        echo "<td>Vorname:</td>";
        echo "<td><input type=text name=vname value=".$vname."></td>";
        echo "</tr>";
      }
      ?>

      </table>
      </form>
      check.php:
      PHP-Code:
      session_start();

      if(
      $vname==""){
        echo 
      "Sie haben nicht alle Felder ausgefüllt!";
        
      session_register('vname');
        echo 
      "<a href.... link back....>";
      }
      else{ echo 
      "Vorname:  ".$vname;}
      .... 
      Wenn nun das Formular geöffnet wird ist die Variable $vname existent und wird als Value für das Textfeld eingesetzt... Aber wie gesagt es gibt gaaaaaaaaaaaanz sicher eine leichtere lösung

      Kommentar


      • #4
        jupp, gibt es: wenn $vname nicht gesetzt ist, bleibt mit Angabe des (ungesetzten) values das Feld auch leer, also kann man die Unterscheidung weglassen.
        Dafür würde ich (wegen eventueller Sonderzeichen) noch htmlentities benutzen:

        echo "<tr>";
        echo "<td>Vorname:</td>";
        echo "<td><input type=text name=vname value=".htmlentities($vname)."></td>";
        echo "</tr>";

        Und die Macke hat nicht nur der IE6, im 5er gibt´s das auch.
        Ursache hab ich noch nicht erforscht.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          eine leichtere lösung wäre, du nimmst die variablen und machst nochmal das formular und gibts z.b. email <input type="text" name="email" value="<? echo $email?>">
          du musst nur bei der seite davor die variablen auf die nächste seite linken
          Sunshine CMS
          BannerAdManagement
          Borlabs - because we make IT easier
          Formulargenerator [color=red]Neu![/color]
          Herkunftsstatistik [color=red]Neu![/color]

          Kommentar

          Lädt...
          X