PHP melaksanakan fungsi pengesahan pengarang dan penjawab soalan dalam laman web soal jawab ilmu
Dalam rangkaian sosial moden, populariti laman web soal jawab ilmu semakin meningkat dari hari ke hari. Untuk meningkatkan kredibiliti dan pengalaman pengguna tapak web, mengesahkan pengarang dan penjawab soalan adalah ciri penting. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan fungsi pengesahan pengarang soalan dan penjawab dalam laman web soalan dan jawapan pengetahuan.
Pertama, kita perlu mencipta pangkalan data pengguna dan menambah medan yang sepadan untuk menyimpan maklumat pengguna. Dalam contoh ini, kami menganggap bahawa kami telah mencipta jadual bernama "pengguna" dengan medan berikut: id, nama pengguna, e-mel, kata laluan, is_author_verified dan is_answerer_verified.
Seterusnya, kita perlu membuat pendaftaran pengguna dan halaman log masuk. Halaman pendaftaran membolehkan pengguna membuat akaun baharu, manakala halaman log masuk digunakan untuk log masuk bagi pengguna berdaftar. Berikut ialah contoh halaman pendaftaran mudah:
<!DOCTYPE html> <html> <head> <title>注册</title> </head> <body> <h2>注册</h2> <form method="post" action="register.php"> <input type="text" name="username" placeholder="用户名" required /><br><br> <input type="email" name="email" placeholder="邮箱" required /><br><br> <input type="password" name="password" placeholder="密码" required /><br><br> <input type="submit" value="注册" /> </form> </body> </html>
Selepas halaman pendaftaran menyerahkan borang, data dihantar ke skrip pemprosesan bahagian belakang yang dipanggil "register.php". Berikut ialah contoh mudah:
<?php // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database'); // 获取表单数据 $username = $_POST['username']; $email = $_POST['email']; $password = $_POST['password']; // 加密密码 $hashed_password = password_hash($password, PASSWORD_DEFAULT); // SQL 插入语句 $sql = "INSERT INTO users (username, email, password) VALUES ('$username', '$email', '$hashed_password')"; // 执行插入操作 $conn->query($sql); // 关闭数据库连接 $conn->close(); // 返回登录页面 header("Location: login.php"); exit(); ?>
Perlu diingatkan bahawa dalam pembangunan sebenar, input pengguna harus disahkan dan suntikan SQL dihalang.
Seterusnya ialah contoh halaman log masuk:
<!DOCTYPE html> <html> <head> <title>登录</title> </head> <body> <h2>登录</h2> <form method="post" action="login.php"> <input type="email" name="email" placeholder="邮箱" required /><br><br> <input type="password" name="password" placeholder="密码" required /><br><br> <input type="submit" value="登录" /> </form> </body> </html>
Borang halaman log masuk menyerahkan data ke dalam skrip pemprosesan bahagian belakang yang dipanggil "login.php". Berikut ialah contoh mudah:
<?php // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database'); // 获取表单数据 $email = $_POST['email']; $password = $_POST['password']; // 查询匹配的用户 $sql = "SELECT * FROM users WHERE email='$email'"; $result = $conn->query($sql); // 验证密码 $user = $result->fetch_assoc(); if ($user && password_verify($password, $user['password'])) { // 登录成功,将用户信息保存在 session 中 session_start(); $_SESSION['user_id'] = $user['id']; $_SESSION['username'] = $user['username']; $_SESSION['email'] = $user['email']; $_SESSION['is_author_verified'] = $user['is_author_verified']; $_SESSION['is_answerer_verified'] = $user['is_answerer_verified']; // 跳转到首页或其他页面 header("Location: index.php"); exit(); } else { // 登录失败,返回登录页 header("Location: login.php"); exit(); } ?>
Selepas log masuk berjaya, kami menyimpan maklumat pengguna dalam sesi untuk akses halaman seterusnya dan kawalan pengesahan.
Untuk melaksanakan fungsi pengesahan pengarang soalan dan responden, kami boleh menambah pilihan yang sepadan pada halaman profil pengguna. Berikut ialah contoh halaman profil ringkas:
<!DOCTYPE html> <html> <head> <title>个人资料</title> </head> <body> <h2>个人资料</h2> <p>用户名:<?php echo $_SESSION['username']; ?></p> <p>邮箱:<?php echo $_SESSION['email']; ?></p> <form method="post" action="verify.php"> <input type="checkbox" name="is_author" <?php if($_SESSION['is_author_verified']) echo 'checked'; ?>> 作者<br> <input type="checkbox" name="is_answerer" <?php if($_SESSION['is_answerer_verified']) echo 'checked'; ?>> 回答者<br> <input type="submit" value="保存" /> </form> </body> </html>
Dalam halaman profil, kami memaparkan nama pengguna dan e-mel pengguna, dan menggunakan kotak semak untuk membolehkan pengguna memilih sama ada untuk diperakui sebagai pengarang atau responden. Selepas borang diserahkan, data dihantar ke skrip pemprosesan bahagian belakang yang dipanggil "verify.php". Berikut ialah contoh mudah:
<?php // 连接数据库 $conn = new mysqli('localhost', 'username', 'password', 'database'); // 获取表单数据 $is_author = isset($_POST['is_author']) ? 1 : 0; $is_answerer = isset($_POST['is_answerer']) ? 1 : 0; // 更新用户认证信息 $user_id = $_SESSION['user_id']; $sql = "UPDATE users SET is_author_verified=$is_author, is_answerer_verified=$is_answerer WHERE id=$user_id"; $conn->query($sql); // 更新 session $_SESSION['is_author_verified'] = $is_author; $_SESSION['is_answerer_verified'] = $is_answerer; // 关闭数据库连接 $conn->close(); // 返回个人资料页面 header("Location: profile.php"); exit(); ?>
Kod di atas menunjukkan cara menggunakan PHP untuk melaksanakan fungsi pengesahan pengarang soalan dan penjawab dalam tapak web soal jawab pengetahuan. Dengan pendaftaran, log masuk, halaman profil dan kawalan pengesahan, kami boleh meningkatkan kebolehpercayaan dan pengalaman pengguna tapak web trivia anda. Sudah tentu, lebih banyak fungsi dan mekanisme keselamatan boleh ditambah berdasarkan keperluan sebenar.
Atas ialah kandungan terperinci PHP melaksanakan fungsi pengesahan pengarang soalan dan penjawab dalam laman web soalan dan jawapan pengetahuan.. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!