ホームページ >バックエンド開発 >PHPチュートリアル >PHPは知識問答サイトにユーザーポイントシステム機能を実装しています。
PHP は、知識 Q&A Web サイトにユーザー ポイント システム機能を実装します。
知識 Q&A Web サイトの人気に伴い、ユーザーが質問への回答に積極的に参加し、知識を積極的に共有している様子がよく見られます。ユーザーの参加と貢献を促進するために、多くの知識質問 Web サイトではユーザー ポイント システムが導入されます。この記事では、PHPを使用して簡単なユーザーポイントシステム機能を実装する方法を紹介します。
まず、ユーザーのポイント情報を保存するデータベースが必要です。ユーザーとスコアという 2 つのテーブルがあるとします。ユーザーテーブルにはユーザーに関する情報が格納され、スコアテーブルにはユーザーのポイント情報が格納される。データベース qa
を作成し、テーブルを作成します:
CREATE TABLE `user` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `username` VARCHAR(50) NOT NULL, `email` VARCHAR(50) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `score` ( `id` INT(11) NOT NULL AUTO_INCREMENT, `user_id` INT(11) NOT NULL, `score` INT(11) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
次に、ユーザー ポイント システムの機能を実装するために、index.php
という名前の PHP ファイルを作成します。
まず、データベースに接続する必要があります。 db.php
ファイルを作成し、次のコードを追加します:
<?php $servername = "localhost"; $username = "root"; $password = "password"; $dbname = "qa"; $conn = new mysqli($servername, $username, $password, $dbname); if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } ?>
次に、db.php
ファイルを index.php
に導入します。
<?php require_once 'db.php'; ?>
次に、ユーザー登録機能を実装する必要があります。 register.php
ファイルを作成し、次のコードを追加します。
<?php require_once 'db.php'; if ($_SERVER["REQUEST_METHOD"] === "POST") { $username = $_POST["username"]; $email = $_POST["email"]; $sql = "INSERT INTO user (username, email) VALUES ('$username', '$email')"; if ($conn->query($sql) === TRUE) { echo "User registration successful!"; } else { echo "Error: " . $sql . "<br>" . $conn->error; } } $conn->close(); ?>
ユーザー登録用の HTML フォームを index.php
に追加します。コードは次のとおりです。 # #
<form action="register.php" method="POST"> <input type="text" name="username" placeholder="Username" required /> <input type="email" name="email" placeholder="Email" required /> <button type="submit">Register</button> </form>ユーザーが正常に登録したら、ユーザーにポイントを追加する必要があります。
register.php ファイルに次のコードを追加します。
$score = 100; $sql = "INSERT INTO score (user_id, score) VALUES (LAST_INSERT_ID(), '$score')"; if ($conn->query($sql) === TRUE) { echo "Score added successfully!"; } else { echo "Error: " . $sql . "<br>" . $conn->error; }次に、ユーザー ログイン関数を実装する必要があります。
login.php ファイルを作成し、次のコードを追加します。
<?php require_once 'db.php'; if ($_SERVER["REQUEST_METHOD"] === "POST") { $username = $_POST["username"]; $sql = "SELECT * FROM user WHERE username = '$username'"; $result = $conn->query($sql); if ($result->num_rows > 0) { $user = $result->fetch_assoc(); session_start(); $_SESSION["user_id"] = $user["user_id"]; $_SESSION["username"] = $user["username"]; header("Location: profile.php"); } else { echo "User not found!"; } } $conn->close(); ?>ユーザー ログイン HTML フォームを
index.php に追加します。コードは次のとおりです。
<form action="login.php" method="POST"> <input type="text" name="username" placeholder="Username" required /> <button type="submit">Login</button> </form>最後に、ユーザーのプロフィール ページ (
profile.php ファイル) を実装する必要があります。次のコードを追加します。
<?php require_once 'db.php'; session_start(); $user_id = $_SESSION["user_id"]; $sql = "SELECT * FROM user WHERE user_id = $user_id"; $result = $conn->query($sql); if ($result->num_rows > 0) { $user = $result->fetch_assoc(); echo "Username: " . $user["username"] . "<br>"; echo "Email: " . $user["email"] . "<br>"; $sql_score = "SELECT * FROM score WHERE user_id = $user_id"; $result_score = $conn->query($sql_score); if ($result_score->num_rows > 0) { $score = $result_score->fetch_assoc(); echo "Score: " . $score["score"] . "<br>"; } } $conn->close(); ?>次のコードを
profile.php ファイルに追加して、ユーザーのプロフィールとポイント情報を表示します。
<?php session_start(); if (!isset($_SESSION["user_id"])) { header("Location: index.php"); exit; } require_once 'db.php'; ?> <h1>User Profile</h1> <a href="logout.php">Logout</a> <?php require_once 'profile.php'; ?>この時点で、ユーザーポイントシステム機能を追加しました。ユーザーはプロフィールページで登録、ログインし、ポイント情報を確認できます。 概要: この記事では、PHP を使用して、知識の質問と回答の Web サイトにユーザー ポイント システム機能を実装します。データベースに接続し、ユーザーを登録し、ユーザーにポイントを付与し、ユーザーログインやプロフィールページ機能を実現します。この記事が、PHP プログラミングや Web サイト開発を学ぶ皆さんのお役に立てれば幸いです。
以上がPHPは知識問答サイトにユーザーポイントシステム機能を実装しています。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。