如何获取并使用PHP社交网站源码?

我可以为你提供一个详细的PHP社交网站源码示例,这个示例将包括用户注册、登录、发布动态和评论功能,为了简洁起见,我将代码分成几个部分进行解释。

如何获取并使用PHP社交网站源码?插图1

数据库设置

我们需要创建一个MySQL数据库来存储用户信息和动态内容。

CREATE DATABASE social_network;
USE social_network;
CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    username VARCHAR(50) NOT NULL UNIQUE,
    password VARCHAR(255) NOT NULL,
    email VARCHAR(100) NOT NULL UNIQUE,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE posts (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id)
);
CREATE TABLE comments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    post_id INT NOT NULL,
    user_id INT NOT NULL,
    content TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (post_id) REFERENCES posts(id),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

配置文件 `config.php`

创建一个配置文件来存储数据库连接信息。

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "social_network";
// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

3. 用户注册register.php

创建一个用户注册表单并处理注册请求。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Register</title>
</head>
<body>
    <h3>Register</h3>
    <form action="register.php" method="post">
        Username: <input type="text" name="username" required><br>
        Email: <input type="email" name="email" required><br>
        Password: <input type="password" name="password" required><br>
        <button type="submit">Register</button>
    </form>
    <?php
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        include 'config.php';
        
        $username = $_POST['username'];
        $email = $_POST['email'];
        $password = password_hash($_POST['password'], PASSWORD_BCRYPT);
        
        $stmt = $conn->prepare("INSERT INTO users (username, email, password) VALUES (?, ?, ?)");
        $stmt->bind_param("sss", $username, $email, $password);
        
        if ($stmt->execute()) {
            echo "Registration successful!";
        } else {
            echo "Error: " . $stmt->error;
        }
        
        $stmt->close();
        $conn->close();
    }
    ?>
</body>
</html>

用户登录 `login.php`

创建一个用户登录表单并处理登录请求。

如何获取并使用PHP社交网站源码?插图3

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Login</title>
</head>
<body>
    <h3>Login</h3>
    <form action="login.php" method="post">
        Username: <input type="text" name="username" required><br>
        Password: <input type="password" name="password" required><br>
        <button type="submit">Login</button>
    </form>
    <?php
    session_start();
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        include 'config.php';
        
        $username = $_POST['username'];
        $password = $_POST['password'];
        
        $stmt = $conn->prepare("SELECT id, password FROM users WHERE username = ?");
        $stmt->bind_param("s", $username);
        $stmt->execute();
        $stmt->store_result();
        
        if ($stmt->num_rows > 0) {
            $stmt->bind_result($id, $hashed_password);
            $stmt->fetch();
            
            if (password_verify($password, $hashed_password)) {
                $_SESSION['user_id'] = $id;
                header("Location: home.php");
                exit();
            } else {
                echo "Invalid password.";
            }
        } else {
            echo "No user found with that username.";
        }
        
        $stmt->close();
        $conn->close();
    }
    ?>
</body>
</html>

主页 `home.php`

显示用户的动态和评论。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
    <h3>Welcome to the Social Network</h3>
    <?php
    session_start();
    if (!isset($_SESSION['user_id'])) {
        header("Location: login.php");
        exit();
    }
    include 'config.php';
    
    $user_id = $_SESSION['user_id'];
    
    $stmt = $conn->prepare("SELECT * FROM posts ORDER BY created_at DESC");
    $stmt->execute();
    $result = $stmt->get_result();
    
    while ($row = $result->fetch_assoc()) {
        echo "<div>";
        echo "<p><strong>User ID:</strong> " . $row['user_id'] . "</p>";
        echo "<p><strong>Content:</strong> " . $row['content'] . "</p>";
        echo "<p><strong>Posted on:</strong> " . $row['created_at'] . "</p>";
        echo "</div><hr>";
    }
    
    $stmt->close();
    $conn->close();
    ?>
    <a href="logout.php">Logout</a>
</body>
</html>

注销 `logout.php`

处理用户注销请求。

<?php
session_start();
session_destroy();
header("Location: login.php");
exit();
?>

发布动态 `post.php`

允许用户发布动态。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Post</title>
</head>
<body>
    <h3>Create a Post</h3>
    <form action="post.php" method="post">
        Content: <textarea name="content" required></textarea><br>
        <button type="submit">Post</button>
    </form>
    <?php
    session_start();
    if (!isset($_SESSION['user_id'])) {
        header("Location: login.php");
        exit();
    }
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        include 'config.php';
        
        $user_id = $_SESSION['user_id'];
        $content = $_POST['content'];
        
        $stmt = $conn->prepare("INSERT INTO posts (user_id, content) VALUES (?, ?)");
        $stmt->bind_param("is", $user_id, $content);
        
        if ($stmt->execute()) {
            header("Location: home.php");
            exit();
        } else {
            echo "Error: " . $stmt->error;
        }
        
        $stmt->close();
        $conn->close();
    }
    ?>
</body>
</html>

8. 评论功能comment.php(可选)

允许用户对动态发表评论,这里只提供一个简单的实现思路,你可以根据需要扩展。

如何获取并使用PHP社交网站源码?插图5

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Comment</title>
</head>
<body>
    <h3>Leave a Comment</h3>
    <form action="comment.php" method="post">
        Post ID: <input type="number" name="post_id" required><br>
        Content: <textarea name="content" required></textarea><br>
        <button type="submit">Comment</button>
    </form>
    <?php
    session_start();
    if (!isset($_SESSION['user_id'])) {
        header("Location: login.php");
        exit();
    }
    if ($_SERVER["REQUEST_METHOD"] == "POST") {
        include 'config.php';
        
        $user_id = $_SESSION['user_id'];
        $post_id = $_POST['post_id'];
        $content = $_POST['content'];
        
        $stmt = $conn->prepare("INSERT INTO comments (post_id, user_id, content) VALUES (?, ?, ?)");
        $stmt->bind_param("iis", $post_id, $user_id, $content);
        
        if ($stmt->execute()) {
            header("Location: home.php");
            exit();
        } else {
            echo "Error: " . $stmt->error;
        }
        
        $stmt->close();
        $conn->close();
    }
    ?>
</body>
</html>

是一个基本的社交网站源码示例,涵盖了用户注册、登录、发布动态和评论等功能,你可以根据实际需求进一步扩展和完善这些功能。

小伙伴们,上文介绍php社交网站源码_PHP的内容,你了解清楚吗?希望对你有所帮助,任何问题可以给我留言,让我们下期再见吧。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/89710.html

小末小末
上一篇 2024年11月4日 01:54
下一篇 2024年11月4日 02:16

相关推荐