1

PHPページを作成してパスワードを生成し、データベースの新しいパスワードでレコードを更新しようとしています。データベースには2つのテーブルがあり、ユーザーが存在することを確認する必要がありますが、フィールドを更新するために必要なMySQLがわかりません。これが私がこれまでに持っているものです:

if (isset($_POST['rest'])) {

        if (empty($_POST['email'])) { 
        echo "<h2 class='output'>You did not enter an email address</h2>"; 
        } 
        else{ 
        $email = $_POST['email'];   

        mysql_select_db($database_localhost,$localhost) or die ("Couldn't select the database."); 

        $result1=mysql_query("SELECT * FROM student WHERE email='$email'"); 
        $result2=mysql_query("SELECT * FROM admin WHERE email='$email'");

        $rowCheck1 = mysql_num_rows($result1);
        $rowCheck2 = mysql_num_rows($result2); 
        if(($rowCheck1 > 0) || ($rowCheck2 > 0)){ 

        $newPass = md5( random_gen(8));
        mysql_query("INSERT INTO admin, student (password) VALUES (".$newPass.") WHERE email="$email"");

}}

どんな助けでも大歓迎ですありがとう

4

2 に答える 2

1

sqlupdateステートメントを使用する必要があります。insertステートメントは、studentテーブルとadminテーブルに新しい行を追加します。

したがって、コードは次のようになります。

if (isset($_POST['rest'])) {

    if (empty($_POST['email'])) { 
        echo "<h2 class='output'>You did not enter an email address</h2>"; 
    } 
    else{ 
        $email = $_POST['email'];   

        mysql_select_db($database_localhost,$localhost) or die ("Couldn't select the database."); 

        $result1=mysql_query("SELECT * FROM student WHERE email='$email'"); 
        $result2=mysql_query("SELECT * FROM admin WHERE email='$email'");

        $rowCheck1 = mysql_num_rows($result1);
        $rowCheck2 = mysql_num_rows($result2); 
        if(($rowCheck1 > 0) || ($rowCheck2 > 0)){ 

            $newPass = md5( random_gen(8))
            mysql_query("UPDATE admin SET password = '$newPass' WHERE email='$email'");
            mysql_query("UPDATE student SET password = '$newPass' WHERE email='$email'");

    }
}

}

于 2012-05-29T03:43:34.680 に答える
-5

mysqlテーブルに新しい行を挿入する代わりに、「update」を使用します。

mysql_query("UPDATE `admin`,`student` (`password`) VALUES ('$newPass') WHERE `email` = '$email'");

また、句読点を追加しました。

編集:@ zi42に思い出させてくれてありがとう、MD5をもう使うのは一般的に良い考えではありません。使用する方が良いのは、hash_hmacと「sha256」ハッシュです。

于 2012-05-29T03:34:28.373 に答える