Bagaimana untuk mendapatkan kata laluan peribadi dalam php

PHPz
Lepaskan: 2023-04-06 10:00:01
asal
674 orang telah melayarinya

Dalam era Internet semasa, kerana semakin banyak maklumat dalam pekerjaan dan kehidupan orang ramai perlu disimpan di Internet, permintaan orang ramai untuk kata laluan juga semakin tinggi. Di satu pihak, kata laluan boleh melindungi keselamatan dan privasi maklumat peribadi Sebaliknya, disebabkan peningkatan intensiti kehidupan dan kerja, ingatan orang ramai juga telah menurun dengan ketara, menyebabkan semakin ramai orang melupakan kata laluan mereka sendiri . Oleh itu, cara mendapatkan kata laluan peribadi dengan mudah dan mudah telah menjadi keperluan yang sangat biasa. Artikel ini akan memperkenalkan cara untuk mendapatkan kata laluan peribadi dalam PHP.

1. Idea

Sebelum melaksanakan fungsi ini, kita perlu memahami idea kaedah ini terlebih dahulu. Fungsi mendapatkan kata laluan, secara ringkasnya, adalah untuk menetapkan semula kata laluan pengguna dengan mengesahkan "soalan keselamatan" pengguna atau dengan "mengesahkan alamat e-mel". Oleh itu, apabila kami melaksanakan fungsi mendapatkan semula kata laluan, kami biasanya melaksanakan operasi teras berikut:

  1. Sahkan e-mel atau nombor telefon mudah alih pengguna
  2. Biarkan pengguna menjawab soalan keselamatan yang ditetapkan
  3. Hantar e-mel penetapan semula kata laluan atau pautan SMS
  4. Tetapkan semula kata laluan pengguna
  5. Hantar gesaan kejayaan pengubahsuaian kata laluan

Kaedah pelaksanaan

Di bawah, kami akan memperkenalkan secara terperinci cara PHP melaksanakan pengambilan kata laluan peribadi.

Langkah1: Buat jadual pangkalan data

Pertama, kita perlu mencipta jadual pangkalan data untuk menyimpan maklumat data asas pengguna, termasuk akaun pengguna, kata laluan, alamat e-mel, soalan keselamatan, dsb. Berikut ialah jadual maklumat pengguna biasa:

BUAT JADUAL user (
id int(11) BUKAN NULL AUTO_INCREMENT,
username varchar(255) BUKAN NULL,
password varchar(255) BUKAN NULL,
email varchar(255) BUKAN NULL,
question varchar(255) BUKAN NULL,
answer varchar(255) BUKAN NULL,
KUNCI UTAMA (id)
) ENGINE=CHARSET LALAI InnoDB=utf8;

Dengan mencipta jadual pangkalan data di atas, kami boleh menyimpan maklumat asas pengguna, termasuk nama pengguna, kata laluan dan alamat e-mel Maklumat yang diperlukan seperti alamat dan tetapan soalan dan jawapan keselamatan.

Langkah2: Sahkan e-mel atau nombor telefon mudah alih pengguna

Apabila mengesahkan e-mel atau nombor telefon mudah alih pengguna, kami perlu mendapatkan maklumat pendaftaran pengguna daripada pangkalan data dan membandingkannya dengan akaun yang dimasukkan oleh pengguna. Kaedah pengesahan khusus boleh disahkan menggunakan fungsi terbina dalam PHP, seperti berikut:

//Ungkapan biasa untuk mengesan format nombor telefon mudah alih
$pattern = "/^1[34578]d{9 }$/ ";
if (!preg_match($pattern, $user_account)) {

echo '手机格式不正确';
return;
Salin selepas log masuk

}
//Query user information
$sql = "SELECT * FROM user WHERE email= '$user_account' OR mobile='$user_account'";
$res = mysqli_query($sql);
$userInfo = mysqli_fetch_assoc($res);

Kita boleh mencapai ini melalui kod Logik di atas untuk mengesahkan maklumat akaun apabila kata laluan baharu pengguna ditetapkan.

Langkah3: Biarkan pengguna menjawab soalan keselamatan yang ditetapkan oleh pengguna

Selepas pengguna memasukkan dan mengesahkan maklumat akaun, kami perlu menentukan soalan keselamatan yang ditetapkan oleh pengguna dan seterusnya mengesahkan maklumat identiti pengguna. Berikut ialah kaedah pengesahan biasa:

if($userInfo["answer"] == $user_answer) {

$mail = $userInfo["email"];
$to = $mail;
$subject = '重置密码通知';
$new_password = generate_password(); // 生成一个新密码
$sql = "UPDATE user SET password = '$new_password' WHERE email = '$mail' OR mobile = '$mail' ";
mysqli_query($sql);
$text = "尊敬的用户,您的新密码为:".$new_password." ,请及时修改。";
mail($to,$subject,$text);
echo '修改成功,请查收邮件';
Salin selepas log masuk

} lain {

echo '密保问题验证失败';
Salin selepas log masuk

}

Dalam kod di atas, kami terus melaksanakan fungsi mendapatkan kata laluan dan menambah baik pengalaman pengguna dengan menghantar e-mel tetapan semula kata laluan ke peti mel pengguna.

Langkah4: Tetapkan semula kata laluan pengguna

Selepas mengesahkan isu keselamatan nama pengguna dan kata laluan, kami juga perlu melengkapkan operasi tetapan semula kata laluan. Berikut ialah kaedah operasi khusus:

$new_password = generate_password(); //Jana kata laluan baharu
$sql = "KEMASKINI kata laluan SET pengguna = '$new_password' WHERE email = '$mail' ATAU mudah alih = '$mail' ";
mysqli_query($sql);

Melalui kod di atas, kami berjaya melaksanakan operasi tetapan semula kata laluan, yang memberikan jaminan untuk meningkatkan lagi pengalaman pengguna.

Langkah5: Hantar gesaan penukaran kata laluan yang berjaya

Selepas melengkapkan operasi penetapan semula kata laluan pengguna, kami perlu menggunakan kaedah pemberitahuan seperti e-mel atau SMS untuk menghantar mesej gesaan kepada pengguna yang menunjukkan bahawa kata laluan telah berjaya ditukar. Berikut ialah peringatan biasa:

$text = "Pengguna yang dihormati, kata laluan baharu anda ialah: ".$new_password.", sila tukar dalam masa.";
mel($to, $ subject , $text);

3. Kesimpulan

Berdasarkan pelaksanaan di atas, kami boleh melaksanakan operasi mendapatkan kata laluan peribadi dengan mudah dalam PHP. Melalui kaedah ini, kami bukan sahaja dapat memastikan keselamatan dan privasi maklumat peribadi, tetapi juga meningkatkan pengalaman pengguna dan seterusnya menggalakkan pembangunan teknologi Internet.

Atas ialah kandungan terperinci Bagaimana untuk mendapatkan kata laluan peribadi dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan