2016-07-04 6 views
0

Ich möchte die OldPassword, newPassword, newPasswordAgain Werte zu ChangePassword.php übergeben, nachdem ich die Gültigkeit der Daten mit einer JavaScript-Funktion überprüft. Hier ist die Form und die javascript:Wie kann ich die Formularwerte an ChangePassword.php übergeben?

<?php 
session_start(); 
?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <link rel="stylesheet" type="text/css" href="../style/style.css"> 
    </head> 
    <body> 
     <div class="navbar"> 
      <ul> 
       <li><a href="../Pages/Main.php">Home</a></li> 
       <li><a href="../Pages/Rules.php">Rules</a></li> 
       <li><a href="../Pages/Builds.php">Builds</a></li> 
       <li><a href="../Pages/Events.php">Events</a></li> 
       <li><a href="../Pages/Calendar.php">Calendar</a></li> 
       <li style="float:right"><a class="active" href="../Pages/UserSettings.php"><?php echo $_SESSION["username"]; ?></a></li> 
      </ul> 
     </div> 

     <div class="changepasswd_bg"> 
      <div class="absolute"> 

       <form name="changePasswordForm" method=POST action="../Pages/ChangePassword.php" onsubmit="return validateForm()"> 
        <input type="password" name="oldPassword" placeholder="Old password" size="100"><br> 
        <input type="password" name="newPassword" placeholder="New password" size="100"><br> 
        <input type="password" name="newPasswordAgain" placeholder="New password again" size="100"><br> 
        <input type="submit" value="Change" size="70"> 

       </form> 

       <h2 id="output"></h2><br> 
       <h2 id="debug"></h2> 
      </div> 

     </div> 

     <script> 
      function validateForm() { 

       var oldX = document.forms["changePasswordForm"]["oldPassword"].value; 
       var newX = document.forms["changePasswordForm"]["newPassword"].value; 
       var newXAgain = document.forms["changePasswordForm"]["newPasswordAgain"].value; 

       //ki kell tölteni a mezőket 
       if (oldX === null || oldX === "" || newX === null || newX === "" || newXAgain === null || newXAgain === "") { 
        document.getElementById("output").innerHTML = "All field need to fill"; 
        document.getElementById("debug").innerHTML = masterPass; 
        return false; 
       } // a régi passwordnek a megadottal egyezni kell 
       else if ('<?php echo $_SESSION["password"] ?>'.toString() !== oldX.toString()) { 
        document.getElementById("output").innerHTML = "The original passwords are not matches"; 
        return false; 
       } else if (newX !== newXAgain) { 
        document.getElementById("output").innerHTML = "The new passwords are not matches"; 
        return false; 
       } else { 

        document.getElementById("output").innerHTML = "OK"; 
        return true; 
       } 
      } 
     </script> 


    </body> 

</html> 

Und hier ist der ChangePassword.php:

<?php 
session_start(); 
?> 

<!DOCTYPE html> 

<?php 
include '../Database/Connect.php'; 

$oldPassword = $_GET["oldPassword"]; 
$newPassword = $_GET["newPassword"]; 
$newPasswordAgain = $_GET["newPasswordAgain"]; 
if (strlen($oldPassword) == 0 || strlen($newPassword) == 0 || strlen($newPasswordAgain) == 0) { 
    echo "valamelyik 0 hosszu"; 
    echo $_SESSION["password"] . " " . $oldPassword . " " . $newPassword . " " . $newPasswordAgain; 
    //header("Location: ../Pages/SomethingWrong.php"); 
} else if ($_SESSION["password"] !== $oldPassword) { 
    echo "a session és az ild password nem egyezik"; 
    echo $_SESSION["password"] . " " . $oldPassword . " " . $newPassword . " " . $newPasswordAgain; 
    // header("Location: ../Pages/SomethingWrong.php"); 
} else if ($newPassword !== $newPasswordAgain) { 
    echo "a két password nem egyezik"; 
    echo $_SESSION["password"] . " " . $oldPassword . " " . $newPassword . " " . $newPasswordAgain; 
    // header("Location: ../Pages/SomethingWrong.php"); 
} else { 
    echo "minden ok " . $_SESSION["password"] . " " . $oldPassword . " " . $newPassword . " " . $newPasswordAgain; 

} 
?> 

Das Ergebnis ist dieser Fehler. (Auch i auf dem Kopf der Variablenwert nicht sehen kann, wie: http://ChangePassword.php?name=value ... etc)

Notice: Undefined index: oldpassword in D: \ apache \ htdocs \ Seiten \ ChangePassword.php on line 10

Hinweis: Nicht definiert Index: newPassword in D: \ Apache \ htdocs \ Seiten \ ChangePassword.php auf Leitung 11

Hinweis: Nicht definiert Index: newPasswordAgain in D: \ Apache \ htdocs \ Seiten \ ChangePassword.php on 12 Linie

valamelyik 0 hosszuEzredes123

+4

'GET' =' Post' –

+0

Danke Mann! Du hast mich 4 Stunden mehr gerettet –

+0

du bist willkommen. –

Antwort

2

Sie mit $ _GET aber Ihre Methode ist Post. so ändern Sie ihn auf $ _POST

2

Sie müssen $_POST verwenden für Ihr Szenario

$oldPassword = $_POST["oldPassword"]; 
$newPassword = $_POST["newPassword"]; 
$newPasswordAgain = $_POST["newPasswordAgain"]; 

Passing sensible Informationen:

Es ist sicherer, eine SSL-Buchse zu verwenden, wenn sensible Informationen vorbei über das Internet.

Weitere Informationen zu diesem Thema finden Sie in folgenden auf Stack:

+1

In hohem Grade Berechtigung? :-) – jeroen

+0

Yaeh .. Herr Jeroen. Ich versuche nur zu sagen, dass wir die Formularmethode $ _POST anstatt $ _GET –

+2

@jeroen und Mohan verwenden müssen. Ich habe die Antwort leicht bearbeitet. –