Cara menggunakan PHP untuk melaksanakan sistem soal jawab dalam talian yang mudah
Pengenalan:
Dengan perkembangan Internet, semakin ramai orang mula bergantung pada Internet untuk mendapatkan maklumat dan menyelesaikan masalah. Sistem Soal Jawab dan Soal Jawab dalam talian telah menjadi alat yang sangat penting untuk pengguna bertanya soalan dan mendapatkan jawapan. Dalam artikel ini, kita akan belajar cara menggunakan bahasa PHP untuk melaksanakan sistem soal jawab dalam talian yang mudah. Anda bukan sahaja boleh melihat dan bertanya soalan, tetapi anda juga boleh menjawabnya dan berkomunikasi dengan pengguna lain.
Bahagian 1: Reka bentuk struktur pangkalan data
Sebelum kita mula, kita perlu mereka bentuk pangkalan data untuk menyimpan maklumat pengguna, soal jawab. Kita boleh menggunakan MySQL sebagai sistem pengurusan pangkalan data.
Pertama, kami mencipta pangkalan data bernama "qa_system". Kemudian kita perlu mencipta tiga jadual untuk menyimpan maklumat pengguna, soalan dan jawapan. Berikut ialah reka bentuk jadual ini:
Jadual pengguna (pengguna):
Buat laman utama (index.php):
<?php // index.php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "qa_system"); // 查询最新的问题列表 $query = "SELECT * FROM questions ORDER BY created_at DESC"; $result = mysqli_query($conn, $query); ?> <!DOCTYPE html> <html> <head> <title>在线问答系统</title> </head> <body> <h1>在线问答系统</h1> <h2>最新的问题:</h2> <?php while ($row = mysqli_fetch_assoc($result)) { ?> <h3><?php echo $row['title']; ?></h3> <p><?php echo $row['content']; ?></p> <?php } ?> <h2>登录/注册</h2> <form action="login.php" method="POST"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <input type="submit" value="登录"> </form> <form action="register.php" method="POST"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <input type="submit" value="注册"> </form> </body> </html>
Buat halaman log masuk (login.php):
<?php // login.php if ($_SERVER["REQUEST_METHOD"] == "POST") { // 获取用户提交的数据 $username = $_POST["username"]; $password = $_POST["password"]; // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "qa_system"); // 查询用户信息 $query = "SELECT * FROM users WHERE username = '$username' AND password = '$password'"; $result = mysqli_query($conn, $query); // 检查用户是否存在 if (mysqli_num_rows($result) > 0) { // 用户存在,将其用户信息存储到会话中并跳转到问题页面 $user = mysqli_fetch_assoc($result); session_start(); $_SESSION["user_id"] = $user["id"]; header("Location: questions.php"); } else { // 用户不存在,显示错误信息 echo "用户名或密码错误"; } } ?> <!DOCTYPE html> <html> <head> <title>用户登录</title> </head> <body> <h1>用户登录</h1> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <input type="submit" value="登录"> </form> </body> </html>
Buat halaman pendaftaran (register.php):
<?php // register.php if ($_SERVER["REQUEST_METHOD"] == "POST") { // 获取用户提交的数据 $username = $_POST["username"]; $password = $_POST["password"]; // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "qa_system"); // 插入新用户 $query = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; mysqli_query($conn, $query); // 跳转到问题页面 header("Location: questions.php"); } ?> <!DOCTYPE html> <html> <head> <title>用户注册</title> </head> <body> <h1>用户注册</h1> <form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>" method="POST"> <input type="text" name="username" placeholder="用户名"> <input type="password" name="password" placeholder="密码"> <input type="submit" value="注册"> </form> </body> </html>
Buat halaman soalan (soalan.php):
<?php // questions.php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "qa_system"); // 获取问题的ID $question_id = $_GET["id"]; // 查询问题的详细信息 $query = "SELECT * FROM questions WHERE id = $question_id"; $question_result = mysqli_query($conn, $query); $question = mysqli_fetch_assoc($question_result); // 查询问题的回答列表 $query = "SELECT * FROM answers WHERE question_id = $question_id"; $answers_result = mysqli_query($conn, $query); ?> <!DOCTYPE html> <html> <head> <title><?php echo $question["title"]; ?></title> </head> <body> <h1><?php echo $question["title"]; ?></h1> <p><?php echo $question["content"]; ?></p> <h2>回答:</h2> <?php while ($row = mysqli_fetch_assoc($answers_result)) { ?> <p><?php echo $row["content"]; ?></p> <?php } ?> <h2>我要回答:</h2> <?php session_start(); $user_id = $_SESSION["user_id"]; ?> <form action="answer.php" method="POST"> <input type="hidden" name="question_id" value="<?php echo $question_id; ?>"> <input type="hidden" name="user_id" value="<?php echo $user_id; ?>"> <textarea name="content" rows="4" cols="50" placeholder="请输入您的答案"></textarea> <input type="submit" value="提交"> </form> </body> </html>
Buat halaman jawapan (answer.php):
<?php // answer.php if ($_SERVER["REQUEST_METHOD"] == "POST") { // 获取用户提交的数据 $question_id = $_POST["question_id"]; $user_id = $_POST["user_id"]; $content = $_POST["content"]; // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "qa_system"); // 插入新答案 $query = "INSERT INTO answers (question_id, user_id, content) VALUES ($question_id, $user_id, '$content')"; mysqli_query($conn, $query); // 跳转回问题页面 header("Location: questions.php?id=$question_id"); } ?>
Atas ialah kandungan terperinci Cara menggunakan PHP untuk melaksanakan sistem soal jawab dalam talian yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!