首頁  >  文章  >  後端開發  >  PHP 實作知識問答網站中的使用者積分系統功能。

PHP 實作知識問答網站中的使用者積分系統功能。

WBOY
WBOY原創
2023-07-02 12:24:101427瀏覽

PHP 實現知識問答網站中的使用者積分系統功能

隨著知識問答網站的盛行,我們經常可以看到使用者積極參與解答問題,並積極分享自己的知識。為了激勵使用者的參與度和貢獻度,許多知識問答網站都會引進使用者積分系統。本文將介紹如何使用 PHP 實作一個簡單的使用者積分系統功能。

首先,我們需要資料庫來儲存使用者的積分資訊。假設我們有兩個表:user 和 score。 user 表保存使用者的相關訊息,score 表保存使用者的積分資訊。建立資料庫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;

接下來,我們建立一個PHP 文件,命名為index.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);
}
?>

然後,在index.php 中引入db.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();
?>

index.php 中新增使用者註冊的HTML 表單,程式碼如下所示:

<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();
?>

index.php 中新增使用者登入的HTML 表單,程式碼如下所示:

<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 實作了知識問答網站中的使用者積分系統功能。透過連接資料庫,註冊用戶,為用戶添加積分,實現用戶登入和個人資料頁的功能。希望本文對大家學習 PHP 程式設計以及網站開發有幫助。

以上是PHP 實作知識問答網站中的使用者積分系統功能。的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn