Maison > développement back-end > tutoriel php > PHP implémente la fonction d'authentification de l'auteur de la question et du répondeur dans le site Web de questions et réponses de connaissances.

PHP implémente la fonction d'authentification de l'auteur de la question et du répondeur dans le site Web de questions et réponses de connaissances.

PHPz
Libérer: 2023-07-02 12:44:01
original
935 Les gens l'ont consulté

PHP implémente la fonction d'authentification de l'auteur de la question et du répondeur dans le site Web de questions et réponses de connaissances

Dans les réseaux sociaux modernes, la popularité des sites Web de questions et réponses de connaissances augmente de jour en jour. Afin d'améliorer la crédibilité et l'expérience utilisateur du site Web, l'authentification des auteurs des questions et des répondants est une fonctionnalité importante. Cet article explique comment utiliser PHP pour implémenter la fonction d'authentification de l'auteur de la question et du répondeur dans le site Web de questions et réponses de connaissances.

Tout d'abord, nous devons créer une base de données d'utilisateurs et ajouter les champs correspondants pour stocker les informations sur les utilisateurs. Dans cet exemple, nous supposons que nous avons créé une table nommée « users » avec les champs suivants : id, username, email, password, is_author_verified et is_answerer_verified.

Ensuite, nous devons créer des pages d'enregistrement et de connexion des utilisateurs. La page d'inscription permet aux utilisateurs de créer de nouveaux comptes, tandis que la page de connexion est utilisée pour se connecter aux utilisateurs enregistrés. Voici un exemple simple de page d'inscription :

<!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>
Copier après la connexion

Une fois que la page d'inscription a soumis le formulaire, les données sont envoyées à un script de traitement back-end appelé "register.php". Voici un exemple simple :

<?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();
?>
Copier après la connexion

Il convient de noter que dans le développement réel, les entrées de l'utilisateur doivent être vérifiées et l'injection SQL évitée.

Voici ensuite un exemple de page de connexion :

<!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>
Copier après la connexion

Le formulaire de la page de connexion soumet les données dans un script de traitement backend appelé "login.php". Voici un exemple simple :

<?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();
}
?>
Copier après la connexion

Après une connexion réussie, nous enregistrons les informations utilisateur dans la session pour un accès ultérieur à la page et un contrôle d'authentification.

Afin de mettre en œuvre la fonction d'authentification de l'auteur de la question et du répondant, nous pouvons ajouter les options correspondantes à la page de profil utilisateur. Voici un exemple simple de page de profil :

<!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>
Copier après la connexion

Dans la page de profil, nous affichons le nom d'utilisateur et l'adresse e-mail de l'utilisateur, et utilisons des cases à cocher pour permettre à l'utilisateur de choisir s'il doit être certifié en tant qu'auteur ou répondant. Une fois le formulaire soumis, les données sont envoyées à un script de traitement backend appelé "verify.php". Voici un exemple simple :

<?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();
?>
Copier après la connexion

Le code ci-dessus montre comment utiliser PHP pour implémenter les fonctions d'authentification de l'auteur de la question et du répondeur dans un site Web de questions et réponses de connaissances. Avec l'inscription, la connexion, les pages de profil et les contrôles d'authentification, nous pouvons améliorer la fiabilité et l'expérience utilisateur de votre site Web de quiz. Bien entendu, davantage de fonctions et de mécanismes de sécurité peuvent être ajoutés en fonction des besoins réels.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal