Formulardaten werden nochmals gesendet wenn Back Button betätigt

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

  • Formulardaten werden nochmals gesendet wenn Back Button betätigt

    Ich habe ein Loginformular das bei korrekten Logindaten automatisch auf eine zweite Seite weiterleitet:
    PHP-Code:
    header('Location: [url]http://[/url]'.$_SERVER['SERVER_NAME'].'/kunden/'.$_SESSION['kundenpfad'].'/home.php'); 
    Das klappt auch problemlos. Aber wenn ich zuerst etwas falsches im Formular eingebe und erst beim zweiten Versuch die korrekten Logindaten eingebe passiert folgendes:
    Ich werde korrekt auf die zweite Seite weitergeleitet. Wenn ich dort aber den Browser Back-Button betätige kommt folgende Rückmeldung:

    [COLOR=crimson] Sind Sie sicher das Sie dieses Formular nochmals absenden möchten?[/COLOR]

    das passiert aber nur wenn ich vor den korrekten Logindaten flasche eingebe oder die Felder leer lasse.

    Auszug aus dem Loginformular:
    PHP-Code:
    <form name="form1" method="post" action="<?php print $PHP_SELF?>">
    <input type="image" src="login.gif" name="submit" id="submit" value="Senden" />
    Auszug aus dem Script wenn Formular betätigt wird:
    PHP-Code:
    if(isset($_POST['submit_x']) AND isset($_POST['submit_y']))
    header('Location: [url]http://[/url]'.$_SERVER['SERVER_NAME'].'/kunden/'.$_SESSION['kundenpfad'].'/home.php'); 
    Woran könnte das liegen?

  • #2
    Das könnte daran liegen, dass das eine normale Eigenschaft ist, dass wenn beim letzten mal Daten versendet wurden, diese auch verschickt werden, wenn du wieder zum letzten Schritt zurück möchtest.
    Für Rechtschreibfehler übernehme ich keine Haftung!

    Kommentar


    • #3
      das wird i.d.r. so gelöst:

      formular.html:
      Code:
      <form action="verarbeitung.php" ...
      verarbeitung.php
      Code:
      <?php 
      ...
      // wichtig: keinerlei ausgabe an dieser stelle!
      header("Location: http://example.com/danke.html");
      ?>
      danke.html
      Code:
      formular abgesendet, vielen dank, 
      drück jetzt bedenkenlos "zurück" in deinem browser

      Kommentar


      • #4
        Hier mal den Code von index.php bis zum header('Location ...

        PHP-Code:
        <?PHP
        session_start
        (); // session starten
        //
        // --------------------------------------------------------------------- wenn formular gesendet START
        //
        if(isset($_POST['submit_x']) AND isset($_POST['submit_y'])) // wenn formular gesendet
        {
        include(
        "config.php"); // DB verbindung
        //
        //
        if (get_magic_quotes_gpc()==1) { // wenn magic quotes serverseitig ON sind
        $ph_benutzer stripslashes($_POST['benutzer']);
        $ph_passwort stripslashes($_POST['passwort']);
        $ph_benutzer mysql_real_escape_string($ph_benutzer);
        $ph_passwort mysql_real_escape_string($ph_passwort);
        }
        else 
        // sonst
        {
        $ph_benutzer mysql_real_escape_string($_POST['benutzer']);
        $ph_passwort mysql_real_escape_string($_POST['passwort']);
        }
        //
        //
        // --------------------------------------------------------------------- DB abfrage START
        //
        $abfrage "SELECT * FROM .....";
        $ergebnis mysql_query($abfrage) or die(mysql_error());
        $row mysql_fetch_array($ergebnis);
        if( 
        mysql_num_rows($ergebnis) == 1// ueberprueft anzahl der datensätze die zurückkommen
            
        {
            
        $_SESSION['s_grundberechtigung']=1;
            
        $_SESSION['benutzerrecht']= $row['recht'];
            
        $_SESSION['kundenid']= $row['kunde_id'];
            
        $_SESSION['kundenpfad']= $row['pfad'];
            
        $_SESSION['sprache']= $row['lang'];
        header('Location: [url]http://[/url]'.$_SERVER['SERVER_NAME'].'/kunde/'.$_SESSION['kundenpfad'].'/home.php'); // autoweiterleitung
         
        }
              else
            {
        $ph_feedback "Keine Zugangsberechtigung!"//  ausgabe in benutzerbalken
            
        }
        //
        // --------------------------------------------------------------------- DB abfrage ENDE
        //
        }
        //
        // --------------------------------------------------------------------- wenn formular gesendet START
        //

        if($_SESSION['s_grundberechtigung'] == 1)
            {
        include(
        'kunden/'.$_SESSION['s_kundenpfad'].'/clientconfig.php'); // kundenvariabeln einbinden
            
        }
        ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
        <html xmlns="http://www.w3.org/1999/xhtml">
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
        <title>-----</title>
        </head>
        <body>

        Kommentar


        • #5
          Es scheint doch kein normales Verhalten zu sein da es nur passiert wenn das Formular vorher mit falschen Daten gefüttert wurde?

          Kommentar


          • #6
            unklar, was du meinst. dem formular dürfte es reichtlich egal sein, was "richtige" und was "falsche" eingaben sind.

            was ist dein problem?

            Kommentar

            Lädt...
            X