PHP在线鲜花预订系统开发指南

admin 2025-01-14 214 0

在这个数字化时代,线上购物已成为人们生活的一部分。鲜花作为表达情感和祝福的佳品,其在线预订系统的需求也日益增长。本文将带你一步步用PHP构建一个功能完善的在线鲜花预订系统。

PHP在线鲜花预订系统开发指南

项目准备

首先,确保你的开发环境已安装以下工具:

  • PHP 7.4或更高版本
  • MySQL数据库
  • Apache或Nginx服务器
  • 文本编辑器(如VSCode)

1. 数据库设计

在MySQL中创建一个名为flower_shop的数据库,并设计以下表结构:

CREATE TABLE users (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    email VARCHAR(100),
    password VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE flowers (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100),
    description TEXT,
    price DECIMAL(10, 2),
    image VARCHAR(255),
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE orders (
    id INT AUTO_INCREMENT PRIMARY KEY,
    user_id INT,
    flower_id INT,
    quantity INT,
    total_price DECIMAL(10, 2),
    order_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (user_id) REFERENCES users(id),
    FOREIGN KEY (flower_id) REFERENCES flowers(id)
);

2. 项目结构

创建以下文件和目录结构:

/flower_shop
    /includes
        config.php
        db.php
    /public
        index.php
        login.php
        register.php
        checkout.php
    /admin
        dashboard.php
    /assets
        /css
        /js
        /images

核心功能实现

1. 数据库连接

includes/db.php中配置数据库连接:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "flower_shop";

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
?>

2. 用户注册与登录

注册功能

public/register.php中实现用户注册:

<?php
include '../includes/db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = $_POST['name'];
    $email = $_POST['email'];
    $password = password_hash($_POST['password'], PASSWORD_DEFAULT);

    $sql = "INSERT INTO users (name, email, password) VALUES ('$name', '$email', '$password')";
    if ($conn->query($sql) === TRUE) {
        header('Location: login.php');
    } else {
        echo "Error: " . $sql . "<br>" . $conn->error;
    }
}
?>

登录功能

public/login.php中实现用户登录:

<?php
include '../includes/db.php';

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $email = $_POST['email'];
    $password = $_POST['password'];

    $sql = "SELECT * FROM users WHERE email='$email'";
    $result = $conn->query($sql);

    if ($result->num_rows > 0) {
        $user = $result->fetch_assoc();
        if (password_verify($password, $user['password'])) {
            session_start();
            $_SESSION['user_id'] = $user['id'];
            header('Location: index.php');
        } else {
            echo "Invalid password";
        }
    } else {
        echo "User not found";
    }
}
?>

3. 鲜花展示与预订

展示鲜花

public/index.php中展示鲜花列表:


<?php
include '../includes/db.php';

$sql = "SELECT * FROM flowers";
$result = $conn->query($sql);
?>

<!DOCTYPE html>
<html>
<head>
    <title>Online Flower Shop</title>
</head>
<body>
    <h1>Welcome to Our Flower Shop</h1>
    <div class="flower-list">
        <?php while($flower = $result->fetch_assoc()): ?>
            <div class="flower">
                <img src="<?php echo $flower['image']; ?>" alt="<?php echo $flower['name']; ?>">
                <h2><?php echo $flower['name']; ?></h2>
                <p><?php echo $flower['description']; ?></p>
                <p>$<?php echo $flower['price']; ?></p>
                <a href="checkout.php?flower_id=<?php echo $flower['id']; ?>">Buy Now</a>
            </div>
        <?php endwhile; ?>
    </div>
</body>
</

评论(0)