PHPは知識問答サイトにユーザーポイントシステム機能を実装しています。

WBOY
リリース: 2023-07-02 12:26:02
オリジナル
1433 人が閲覧しました

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 サイトの他の関連記事を参照してください。

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