-1

ユーザーがアカウントを作成できるようにする簡単なスクリプトに取り組んでいます。それについて特別なことは何もありません。ユーザー名とパスワードを要求されます。私が抱えている唯一の問題は、ユーザーがパスワードを変更できるようにするスクリプトを作成することです。これが私の進歩です。

パスワードに問題はありませんが、「あなたの現在のパスワードは正しくありません!」と言っています。同じページの別のコードでデータベースに接続するために既に持っています。

<?php
    $CurrentPassword  = mysql_real_escape_string(strip_tags(stripslashes($_POST['CurrentPassword'])));
    $NewPassword    = mysql_real_escape_string(strip_tags(stripslashes($_POST['NewPassword'])));
    $ConfirmNewPassword = mysql_real_escape_string(strip_tags(stripslashes($_POST['ConfirmNewPassword'])));
    $Submit2      =    mysql_real_escape_string(strip_tags(stripslashes($_POST['Submit2'])));
?>
<?php
    if ($Submit2) {
       $_OLDHASH = hash('sha512',''.$CurrentPassword.'');
       $_NEWHASH = hash('sha512',''.$NewPassword.'');
       $_CONFIRMNEWHASH = hash('sha512',''.$ConfirmNewPassword.'');

       if ($myU->Password == $_OLDHASH) {
           if ($_NEWHASH == $_CONFIRMNEWHASH) {
               mysql_query("UPDATE Password='".$_NEWHASH."' WHERE Username='".$User."'");
               session_destroy();
               header("Location: index.php");
           }
           else {
               echo "Your new password and new confirm password does not match!";
           }
       }
       else {
           echo "Your current password is not right!";
       }
    }
?>


<form action='' method='POST'>
<br />
Update Password
<br />
<input placeholder='Current Password' type='password' name='CurrentPassword'>
<br />
<input placeholder='New Password' type='password' name='NewPassword'>
<br />
<input placeholder='Confirm New Password' type='password' name='ConfirmNewPassword'>
<br />
<input type='submit' value='Change' name='Submit2'><br />
</form>
4

2 に答える 2

2

2 つのファイルを作成してみてください。

changePass.html :

<form action='changePass.php' method='POST'>
<br />
Update Password
<br />
<input placeholder='Current Password' type='password' name='CurrentPassword'>
<br />
<input placeholder='New Password' type='password' name='NewPassword'>
<br />
<input placeholder='Confirm New Password' type='password' name='ConfirmNewPassword'>
<br />
<input type='submit' value='Change' name='Submit2'><br />
</form>

そして2番目のcopyPass.php:

<?php
//    Copy your php code here
?>

したがって、ユーザーがパスを変更したい場合は、changePass.html を参照してください。ユーザーがフォームに入力すると、データが送信され、changePass.php に処理されます。データを処理する Web ページとして、フォーム タグ/アクション パラメータに changePass.php が追加されていることに注意してください。

また、SQL クエリの構文が間違っていることに気付きました。次のように記述してください。

mysql_query("UPDATE passwordTable SETPassword='".$_NEWHASH."' WHERE Username='".$User."'");

于 2013-02-20T21:14:06.103 に答える