ホームページ > バックエンド開発 > PHPの問題 > PHPで掲示板にログインする方法

PHPで掲示板にログインする方法

PHPz
リリース: 2023-04-24 14:19:56
オリジナル
806 人が閲覧しました

インターネットの発展に伴い、メッセージ ボードは Web サイトの重要なコンポーネントの 1 つとなり、ユーザーがメッセージを残し、コミュニケーションし、意見を共有するための対話型プラットフォームを提供します。掲示板では、ユーザーがログインして自分の情報を残すことができるため、Webサイト開発者にとってはシンプルで使いやすいログイン掲示板の実装が必要です。この記事では、PHP言語を使って掲示板にログインする方法を紹介します。

1. 環境準備

開発を始める前に、XAMPP、WAMP、MAMPなどのPHP統合開発環境をインストールする必要があります。ここでは XAMPP を例に説明しますが、インストール後、XAMPP の htdocs ディレクトリにプロジェクト ファイルを配置する必要があります。その後、ブラウザを開いて http://localhost/phpmyadmin/ に移動し、「message_board」という名前のデータベースを作成し、その中に「messages」という名前のテーブルを作成します。このテーブルには、次のフィールドが含まれます: id、name、email、メッセージとタイムスタンプ。このうち、id フィールドは自動増加する主キー、timestamp フィールドは現在時刻です。

2. ページ デザイン

PHP では、メッセージ ボードにログインするための一連のインターフェイスと対話型プロセスをデザインする必要があります。最初の目標は、ユーザーがユーザー名とパスワードを入力して認証し、メッセージ ボード ページにジャンプするログイン ページを作成することです。

以下は簡単なログイン ページのソース コードです:

<!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>
ログイン後にコピー

ユーザーが「ログイン」ボタンをクリックすると、フォームが送信され、login.php ページにジャンプします。このページでは、ユーザーが入力したユーザー名とパスワードが正しいかどうかをデータベースから検証する必要があり、検証に合格した場合はセッション変数を設定し、掲示板ページにジャンプします。検証が失敗した場合、ログイン ページにエラー メッセージが返されます。

以下は、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. メッセージ ボードの実装

ログイン ページとログイン検証が完了したら、デザインする必要があります。掲示板ページを実装します。このページにはすべてのメッセージを表示し、ユーザーがメッセージを残すためのフォームを提供する必要があります。ログイン ページと同様に、ユーザーがメッセージ フォームを送信するときは、データベースからすべてのメッセージを取得してページに表示する必要があります。

以下はメッセージ ボード ページのソース コードです:

<?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();
?>
ログイン後にコピー

このページでは、すべてのメッセージ情報を取得し、ページに 1 つずつ表示します。また、ユーザーのログアウトを容易にするために、掲示板ページに「ログアウト」ボタンを追加し、ユーザーがこのボタンをクリックすると、すべてのセッション変数が破棄され、ログインページに戻ります。

4. メッセージ送信の実装

最後に、ユーザーが送信したメッセージ情報を取得してデータベースに保存するフォーム処理プログラムを実装する必要があります。その後、メッセージ ボード ページに戻り、送信されたメッセージが表示されます。

以下は、メッセージ送信プログラムのソース コードです。

<?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();
?>
ログイン後にコピー

このプログラムは、メッセージ情報を受信して​​データベースに保存し、メッセージ ボード ページに戻ります。ユーザーが掲示板ページに戻ると、ページが自動的に更新され、新しいメッセージが表示されます。

概要

この記事では、PHP言語を使ってシンプルで使いやすいログイン掲示板を実装し、各ページの設計と実装について詳しく紹介します。もちろん、これは単なる例であり、より複雑な Web サイトや機能を開発する必要がある場合は、PHP 言語やその他の関連テクノロジーを深く学ぶ必要があります。ただし、この例を学習することで、PHP でのフォーム処理、データベース操作、セッション管理の基本的な知識とスキルを習得できます。

以上がPHPで掲示板にログインする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート