Maison  >  Article  >  développement back-end  >  Utilisez PHP pour développer les fonctions de titre d'utilisateur et de système de médailles dans le site Web de questions et réponses de connaissances.

Utilisez PHP pour développer les fonctions de titre d'utilisateur et de système de médailles dans le site Web de questions et réponses de connaissances.

WBOY
WBOYoriginal
2023-07-02 15:49:401320parcourir

Utilisez PHP pour développer les fonctions du système de titres et de médailles d'utilisateur dans le site Web de questions et réponses de connaissances

Dans le site Web de questions et réponses de connaissances, le système de titres d'utilisateur et de médailles est une fonction importante qui motive les utilisateurs à participer et à contribuer. En attribuant des titres et des badges spéciaux aux utilisateurs, vous pouvez les encourager à répondre activement aux questions, à publier du contenu précieux et à aider les autres utilisateurs à résoudre des problèmes. Dans cet article, j'utiliserai le langage de programmation PHP pour implémenter cette fonctionnalité.

Tout d'abord, nous devons créer une base de données pour stocker les informations sur les utilisateurs, y compris l'identifiant d'utilisateur, le nom d'utilisateur, le titre et la médaille, etc. Nous pouvons utiliser la base de données MySQL pour réaliser cette fonction. Voici un exemple de structure de table de base de données :

CREATE TABLE users (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL,
    title VARCHAR(50) DEFAULT '新手',
    badge VARCHAR(50) DEFAULT '无'
);

Ensuite, nous devons créer un fichier PHP pour gérer la logique des titres et des médailles des utilisateurs. Tout d’abord, nous nous connectons à la base de données, puis obtenons le titre et la médaille actuels de l’utilisateur en fonction de l’ID utilisateur. Voici un exemple de code PHP :

<?php
    // 连接到数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 获取用户ID
    $userId = $_GET['userId'];
    
    // 根据用户ID查询用户信息
    $query = "SELECT * FROM users WHERE id = $userId";
    $result = mysqli_query($conn, $query);
    
    // 检查查询结果是否为空
    if(mysqli_num_rows($result) > 0) {
        // 获取用户信息
        $user = mysqli_fetch_assoc($result);
        
        // 打印用户当前头衔和勋章
        echo "当前头衔:" . $user['title'] . "<br>";
        echo "当前勋章:" . $user['badge'] . "<br>";
    }
    else {
        echo "用户不存在";
    }
    
    // 关闭数据库连接
    mysqli_close($conn);
?>

Nous pouvons désormais obtenir le titre et les informations sur la médaille de l'utilisateur. Ensuite, nous devons implémenter une page pour afficher le titre et les médailles de l'utilisateur, et fournir des boutons pour que les utilisateurs puissent choisir de mettre à jour leurs titres et médailles. Voici le code HTML et JavaScript à titre d'exemple :

<!DOCTYPE html>
<html>
<head>
    <title>用户头衔和勋章</title>
</head>
<body>
    <h1>用户头衔和勋章</h1>
    
    <div id="user-info"></div>
    
    <form id="update-form">
        <label for="title">头衔:</label>
        <input type="text" name="title" id="title" placeholder="请输入新的头衔"><br><br>
        
        <label for="badge">勋章:</label>
        <input type="text" name="badge" id="badge" placeholder="请输入新的勋章"><br><br>
        
        <input type="submit" value="更新">
    </form>
    
    <script>
        window.onload = function() {
            // 获取用户ID
            var userId = <?php echo $_GET['userId']; ?>;
            
            // 发送 AJAX 请求来获取用户的头衔和勋章信息
            var xhr = new XMLHttpRequest();
            xhr.open("GET", "get_user_info.php?userId=" + userId, true);
            xhr.onreadystatechange = function() {
                if(xhr.readyState === XMLHttpRequest.DONE && xhr.status === 200) {
                    // 显示用户的头衔和勋章信息
                    document.getElementById("user-info").innerHTML = xhr.responseText;
                    
                    // 设置表单提交时的操作
                    document.getElementById("update-form").onsubmit = function(e) {
                        e.preventDefault();
                        
                        // 获取新的头衔和勋章
                        var title = document.getElementById("title").value;
                        var badge = document.getElementById("badge").value;
                        
                        // 发送 AJAX 请求来更新用户的头衔和勋章信息
                        var updateXHR = new XMLHttpRequest();
                        updateXHR.open("POST", "update_user_info.php", true);
                        updateXHR.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
                        updateXHR.onreadystatechange = function() {
                            if(updateXHR.readyState === XMLHttpRequest.DONE && updateXHR.status === 200) {
                                // 更新用户的头衔和勋章信息后刷新页面
                                location.reload();
                            }
                        };
                        updateXHR.send("userId=" + userId + "&title=" + title + "&badge=" + badge);
                    };
                }
            };
            xhr.send();
        };
    </script>
</body>
</html>

Enfin, nous devons créer un fichier PHP pour gérer la logique permettant aux utilisateurs de mettre à jour les titres et les médailles. Voici un exemple de code PHP :

<?php
    // 连接到数据库
    $conn = mysqli_connect("localhost", "username", "password", "database");
    
    // 获取用户ID、新的头衔和勋章
    $userId = $_POST['userId'];
    $title = $_POST['title'];
    $badge = $_POST['badge'];
    
    // 更新用户的头衔和勋章信息
    $query = "UPDATE users SET title = '$title', badge = '$badge' WHERE id = $userId";
    mysqli_query($conn, $query);
    
    // 关闭数据库连接
    mysqli_close($conn);
?>

Grâce à l'exemple de code ci-dessus, nous pouvons implémenter une fonction de base de titre d'utilisateur et de système de médaille. Les utilisateurs peuvent visualiser et mettre à jour leurs titres et médailles via la page, augmentant ainsi leur activité et leur participation au site Web de quiz. Bien sûr, nous pouvons développer davantage sur cette base, par exemple en ajoutant davantage de titres et de types de médailles, ainsi qu'une logique et des jugements conditionnels plus complexes. J'espère que cet article vous aidera !

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!

Déclaration:
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