2017-04-01 5 views
0

私は自分のプロジェクトで作業していましたが、管理者のパスワードを忘れてしまいました。ここでは、ユーザーテーブルがある:md5()とcrypt()で生成されたパスワードをリセットする方法

CREATE TABLE IF NOT EXISTS `users` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `email` varchar(50) NOT NULL, 
    `password` varchar(32) NOT NULL, 
    `name` varchar(50) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=11 ; 


INSERT INTO `users` (`id`, `email`, `password`, `name`) VALUES 
(7, '[email protected]', '078bbb4bf0f7117fb131ec45f15b5b87', 'Ikhlas Sons'), 
(10, '[email protected]', '078bbb4bf0f7117fb131ec45f15b5b87', 'essa'); 

誰がどのようにmd5()cryp()

で生成されたPHPでパスワードをリセットを教えてもらえますここでパスワードが生成される方法は次のとおりです。

$hash = crypt($entered_password,""); 
$hash = md5($hash); 
+0

パスワードを生成する場所にコードを投稿できますか? – Mario

+0

ログイン用の選択クエリを確認してください。より良い投稿を投稿してください。 –

+0

あなたはこれでオンラインにならないでしょうか? –

答えて

0

これは動作するはずです:

$hash = crypt("passpass",""); 
$hash = md5("passpass"); 
echo $hash; 

または

$hash = crypt("passpass",""); 
echo $hash; 

パスワードはpasspassです。コードをusersにコピーします。 mysqlデータベースのpasswordフィールド。ログイン時にパスワードとしてpasspassを使用してください。

+0

ありがとうございます。 –

1

たとえば、password_reset_tokenという名前の追加の列が必要です。ユーザーがパスワードを回復したい場合、アプリは(十分長い)ランダムな文字列を生成し、password_reset_tokenフィールドに格納する必要があります。

$_GET(つまりexample.com/password-reset/?token=982dh89h2w9h92hd)でトークンを受け取るスクリプトを作成し、それがUsersテーブルに存在するかどうかを確認し、正しい場合はそのユーザーのパスワードをリセットするフォームをpromtpsします。

このリンク(example.com/password-reset/?token=982dh89h2w9h92hd)をユーザーに電子メールで送信し、パスワードをクリックしてパスワードをリセットする必要があります。

関連する問題