Comment utiliser PHP pour développer une fonction de questions-réponses en ligne
Introduction :
Avec le développement d'Internet, les plateformes de questions-réponses en ligne sont progressivement devenues l'un des principaux moyens permettant aux utilisateurs d'obtenir des connaissances et des informations. Dans ce processus, PHP, en tant que puissant langage de programmation back-end, est largement utilisé dans le développement de divers sites Web et applications. Cet article expliquera comment utiliser PHP pour développer une fonction simple de questions et réponses en ligne, y compris l'enregistrement des utilisateurs, la connexion, les questions, réponses et autres fonctions, et fournira des exemples de code correspondants.
1. Implémentation des fonctions d'enregistrement et de connexion des utilisateurs
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); $sql = "CREATE TABLE users ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL, password VARCHAR(30) NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )"; if ($conn->query($sql) === TRUE) { echo "Table users created successfully"; } else { echo "Error creating table: " . $conn->error; } $conn->close();
Page d'enregistrement (register.php) :
<form action="register_process.php" method="POST"> <input type="text" name="username" placeholder="用户名" required><br> <input type="password" name="password" placeholder="密码" required><br> <button type="submit">注册</button> </form>
Gestionnaire d'enregistrement (register_process.php) :
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); $username = $_POST['username']; $password = $_POST['password']; $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')"; if ($conn->query($sql) === TRUE) { echo "注册成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close();
Page de connexion (login.php) :
<form action="login_process.php" method="POST"> <input type="text" name="username" placeholder="用户名" required><br> <input type="password" name="password" placeholder="密码" required><br> <button type="submit">登录</button> </form>
Gestionnaire de connexion (login_process.php) :
session_start(); $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); $username = $_POST['username']; $password = $_POST['password']; $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'"; $result = $conn->query($sql); if ($result->num_rows == 1) { $_SESSION['username'] = $username; echo "登录成功"; } else { echo "登录失败"; } $conn->close();
2. Implémentation des fonctions de questions et réponses
$servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); $sql = "CREATE TABLE questions ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, user_id INT(6) UNSIGNED, title VARCHAR(100) NOT NULL, content TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )"; if ($conn->query($sql) === TRUE) { echo "Table questions created successfully"; } else { echo "Error creating table: " . $conn->error; } $sql = "CREATE TABLE answers ( id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY, question_id INT(6) UNSIGNED, user_id INT(6) UNSIGNED, content TEXT NOT NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP )"; if ($conn->query($sql) === TRUE) { echo "Table answers created successfully"; } else { echo "Error creating table: " . $conn->error; } $conn->close();
Page de demande (ask.php) :
<form action="ask_process.php" method="POST"> <input type="text" name="title" placeholder="问题标题" required><br> <textarea name="content" placeholder="问题内容" required></textarea><br> <button type="submit">提问</button> </form>
Gestionnaire de questions (ask_process.php) :
session_start(); $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); $title = $_POST['title']; $content = $_POST['content']; $user_id = $_SESSION['user_id']; $sql = "INSERT INTO questions (user_id, title, content) VALUES ('$user_id', '$title', '$content')"; if ($conn->query($sql) === TRUE) { echo "提问成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close();
Page de réponse (answer.php) :
<form action="answer_process.php" method="POST"> <textarea name="content" placeholder="回答内容" required></textarea><br> <button type="submit">回答</button> </form>
Gestionnaire de réponse (answer_process.php) :
session_start(); $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database"; $conn = new mysqli($servername, $username, $password, $dbname); $content = $_POST['content']; $question_id = $_POST['question_id']; $user_id = $_SESSION['user_id']; $sql = "INSERT INTO answers (question_id, user_id, content) VALUES ('$question_id', '$user_id', '$content')"; if ($conn->query($sql) === TRUE) { echo "回答成功"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } $conn->close();
Conclusion :
Grâce aux étapes ci-dessus, nous avons terminé le développement d'un questionnaire de base en ligne. fonction. Les utilisateurs peuvent s'inscrire, se connecter, poser et répondre à des questions. Bien sûr, il ne s’agit que d’un exemple simple, et il faudra peut-être ajouter davantage de fonctions et de mesures de sécurité dans les applications réelles. J'espère que cet article pourra être utile pour développer des fonctions de questions-réponses en ligne à l'aide de PHP. Merci d'avoir lu.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!