0

理論的には、機能するコードをお見せします。つまり、それは理にかなっていますが、テーブルに変化がありません! : \

コードは次のとおりです。

else if ($mode == 'password') {
    $generated_password = substr(md5(rand(999,999999)), 0, 8);
    change_password($user_data['user_id'],$generated_password);         
    update_user($user_data['user_id'], array('password_recover' => '1'));
    email($email, 'Your new password', "Hi," . $user_data['nome'] . " \n\nYour new password is: " . $generated_password . "");
}

機能:

function update_user($user_id,$update_data){
    $update = array();     
    array_walk($update_data, 'array_sanitize'); 
    foreach($update_data as $field => $data) {
            $update[]='`' .$field. '`=\'' .$data . '\'';
    }
    mysql_query("UPDATE users SET " . implode(', ',$update) . "WHERE user_id = '$user_id'");
}

function change_password($user_id,$password) {
    $user_id = (int) $user_id;
    $password = md5($password);

    mysql_query("UPDATE users SET password = '$password' WHERE user_id = $user_id");
}

それが機能するので、私は電子メール機能さえ書いていません。前もって感謝します!:)

4

1 に答える 1

0

コードに何らかのエラー処理を追加する必要があります。少なくともor die('Error: '.mysql_error())それぞれの後に追加mysql_query()して、クエリが実行されたときに何がうまくいかなかったのかを少なくとも把握します。

そして、どこかからコードを取り出して、それが何をするのか本当に理解していなくても、あなたが望むことをしなくても驚かないでください。

于 2013-01-09T21:09:03.407 に答える