0

ログイン システムを作成しましたが、パスワードのリセット コードを追加しようとしています。Mysql データベースに書き込みを行っていないことを除けば、すべて正常に動作しているようです。どんな助けでも大歓迎です。

    <?php
if(isset($_POST['submit'])){
$mycode = ($_POST['code']);
$mynewpass = ($_POST['password']);
$myconfpass = ($_POST['password1']);

    //checks if all fields are filled
if( (empty($mynewpass)) || (empty($myconfpass)) || (empty($mycode)) ){
    $errors[] = '<center>All fields must be filled in.<center>';
}   
    //check if passwords match
if ($mynewpass != $myconfpass){
    $errors[] = '<center>Your passwords do not match</center>'; 
}
        if (!empty($errors)){
    foreach($errors as $error){
        echo '<strong>',$error ,'</strong><br />';
    }
    }else{

include 'Grubconfig.php';

mysql_connect($host, $user, $password) or die(mysql_error());
mysql_select_db($database) or die(mysql_error());

// change password
$mychk = mysql_query(" SELECT * FROM customer WHERE passreset = '$mycode' ");

if(mysql_num_rows($mychk) == 1)

     mysql_query("UPADTE customer SET Password='$mynewpass' WHERE passreset='$mycode'");
     mysql_query("UPADTE customer SET passreset='0' WHERE passreset='$mycode'");

    echo '<center>Your password has been reset Please click <a href="Grublogin.php">here !</a><center>';
    }

} ?>

4

2 に答える 2

0
if(mysql_num_rows($mychk) == 1)

 mysql_query("UPADTE customer SET Password='$mynewpass' WHERE passreset='$mycode'");
 mysql_query("UPADTE customer SET passreset='0' WHERE passreset='$mycode'");
  1. UPDATE のスペルが間違っています
  2. if ( ... ) { 2つのステートメントがあるため、義務付けられているフィギュアブラケットを開いていません

それらを 1 つのクエリに貼り付けることができます。

UPDATE customer SET password = '$mynewpass', passreset = 0 WHERE passreset = '$mycode';

ただし、データベースとのやり取りを MySQLi または PDO に移行することをお勧めします。mysql ライブラリは非推奨になりました。

于 2013-04-18T19:19:14.703 に答える