Maison >développement back-end >Problème PHP >Comment se connecter au forum en php

Comment se connecter au forum en php

PHPz
PHPzoriginal
2023-04-24 10:47:56828parcourir

Avec le développement d'Internet, les forums de discussion sont l'une des parties importantes du site Web. Ils fournissent une plate-forme interactive permettant aux utilisateurs de laisser des messages, de communiquer et de partager des opinions. Dans le forum, les utilisateurs peuvent se connecter et laisser leurs propres informations. Pour les développeurs de sites Web, il est nécessaire de mettre en place un forum de connexion simple et facile à utiliser. Cet article explique comment utiliser le langage PHP pour se connecter au forum.

1. Préparation de l'environnement

Avant de commencer le développement, vous devez installer un environnement de développement intégré PHP, tel que XAMPP, WAMP, MAMP, etc. Ici, nous prenons XAMPP comme exemple. Après l'installation, nous devons placer les fichiers du projet dans le répertoire htdocs de XAMPP. Après cela, ouvrez le navigateur et accédez à http://localhost/phpmyadmin/, créez une base de données nommée "message_board" et créez-y une table nommée "messages", qui doit contenir les champs suivants : identifiant, nom, email, message et horodatage. Parmi eux, le champ id est la clé primaire à augmentation automatique et le champ d'horodatage est l'heure actuelle.

2. Conception de pages

En PHP, nous devons concevoir une série d'interfaces et de processus interactifs pour nous connecter au babillard électronique. Notre premier objectif est de créer une page de connexion où l'utilisateur saisit son nom d'utilisateur et son mot de passe pour s'authentifier et accéder à la page du forum.

Voici un simple code source de la page de connexion :

<!DOCTYPE html>
<html>
<head>
    <title>Login Page</title>
</head>
<body>
    <h2>Login Here</h2>
    <form action="login.php" method="post">
        <label>Username:</label>
        <input type="text" name="username"><br><br>
        <label>Password:</label>
        <input type="password" name="password"><br><br>
        <input type="submit" value="Login">
    </form>
</body>
</html>

Lorsque l'utilisateur clique sur le bouton "Connexion", le formulaire sera soumis puis passera à la page login.php. Sur cette page, nous devons vérifier à partir de la base de données si le nom d'utilisateur et le mot de passe saisis par l'utilisateur sont corrects. Si la vérification est réussie, définissez les variables de session, puis accédez à la page du forum. Si la vérification échoue, la page de connexion est renvoyée avec un message d'erreur.

Ce qui suit est le code source de la page login.php :

<?php
    /*检查登录信息并跳转*/
    session_start();
    $username = $_POST[&#39;username&#39;];
    $password = $_POST[&#39;password&#39;];

    /*数据库连接*/
    $servername = "localhost";
    $db_username = "root";
    $db_password = ""; /*默认密码为空*/
    $dbname = "message_board";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    /*获取用户信息*/
    $sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        /*验证通过,创建会话变量*/
        $_SESSION['username'] = $username;
        header("Location: message_board.php");
    } else {
        /*验证失败,返回登陆页面*/
        echo "Invalid username/password. Please try again.";
        header("Location: login.html");
    }

    $conn->close();
?>

3. Implémentation du babillard électronique

Après avoir terminé la page de connexion et la vérification de la connexion, nous devons concevoir et implémenter la page du babillard électronique. Cette page doit afficher tous les messages et fournir un formulaire permettant aux utilisateurs de laisser des messages. Comme pour la page de connexion, lorsque l'utilisateur soumet le formulaire de message, nous devons récupérer tous les messages de la base de données et les afficher sur la page.

Voici le code source de la page du forum :

<?php
    /*检查会话变量并跳转*/
    session_start();

    if (!isset($_SESSION[&#39;username&#39;])) {
        header("Location: login.html");
    }

    /*数据库连接*/
    $servername = "localhost";
    $db_username = "root";
    $db_password = "";
    $dbname = "message_board";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    /*获取所有留言*/
    $sql = "SELECT * FROM messages";
    $result = $conn->query($sql);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Message Board</title>
</head>
<body>
    <h2>Welcome, <?php echo $_SESSION[&#39;username&#39;]; ?></h2>
    <form action="logout.php" method="post">
        <input type="submit" value="Logout">
    </form>

    <h3>Post a message:</h3>
    <form action="post_message.php" method="post">
        <label>Name:</label>
        <input type="text" name="name"><br><br>
        <label>Email:</label>
        <input type="email" name="email"><br><br>
        <label>Message:</label>
        <textarea name="message" rows="3" cols="40"></textarea><br><br>
        <input type="submit" value="Post">
    </form>

    <h3>Messages:</h3>
    <?php
        if ($result->num_rows > 0) {
            while($row = $result->fetch_assoc()) {
                echo "<p><strong>" . $row["name"]. "</strong> (". $row["email"] ."): " . $row["message"]. " <br>[". $row["timestamp"] ."]</p>";
            }
        } else {
            echo "No messages yet. Be the first one to leave a message!";
        }
    ?>

</body>
</html>

<?php
    $conn->close();
?>

Dans cette page, nous récupérons toutes les informations du message et les affichons sur la page une par une. De plus, afin de faciliter la déconnexion des utilisateurs, nous avons ajouté un bouton « Déconnexion » à la page du forum. Lorsque l'utilisateur clique sur ce bouton, toutes les variables de session seront détruites et reviendront à la page de connexion.

4. Implémentation de la soumission des messages

Enfin, nous devons implémenter un programme de traitement de formulaire, dans ce programme, nous obtiendrons les informations du message soumises par l'utilisateur et les stockerons dans la base de données, puis reviendrons au babillard électronique. page et afficher le message soumis.

Ce qui suit est le code source du programme de soumission de messages :

<?php
    /*接收并处理留言*/
    session_start();

    /*获取表单提交信息*/
    $name = $_POST[&#39;name&#39;];
    $email = $_POST[&#39;email&#39;];
    $message = $_POST[&#39;message&#39;];

    /*数据库连接*/
    $servername = "localhost";
    $db_username = "root";
    $db_password = "";
    $dbname = "message_board";

    $conn = new mysqli($servername, $db_username, $db_password, $dbname);

    if ($conn->connect_error) {
        die("Connection failed: " . $conn->connect_error);
    }

    /*存储留言*/
    $sql = "INSERT INTO messages (name, email, message) VALUES ('$name', '$email', '$message')";
    if ($conn->query($sql) === TRUE) {
        header("Location: message_board.php");
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }

    $conn->close();
?>

Ce programme recevra les informations du message, les stockera dans la base de données, puis reviendra à la page du forum. Lorsque l'utilisateur revient à la page du forum, il actualisera automatiquement la page et affichera les nouveaux messages.

Résumé

Dans cet article, nous avons utilisé le langage PHP pour implémenter un forum de discussion de connexion simple et facile à utiliser, et avons présenté en détail la conception et la mise en œuvre de chaque page. Bien entendu, il ne s’agit que d’un exemple simple. Si vous avez besoin de développer des sites Web ou des fonctions plus complexes, vous devez apprendre en profondeur le langage PHP et les autres technologies associées. Cependant, en étudiant cet exemple, vous serez en mesure de maîtriser les connaissances et compétences de base en matière de traitement de formulaires, d'opérations de bases de données et de gestion de sessions en PHP.

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