以下是一个复杂且功能丰富的 PHP 脚本示例,实现了一个简单的电子商务网站的核心功能,包括用户注册、登录、产品展示、购物车管理和订单处理等功能。这个示例涉及到数据库操作、会话管理、表单验证等方面的内容,是一个相对完整的电子商务网站的简化版本。
```php
<?php
// 数据库连接信息
$servername = "localhost";
$username = "your_username";
$password = "your_password";
$dbname = "your_database";
// 创建数据库连接
$conn = new mysqli($servername, $username, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("数据库连接失败: " . $conn->connect_error);
}
// 启动会话(如果尚未启动)
session_start();
// 用户注册
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['register'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$email = $_POST['email'];
// 插入用户数据到数据库
$sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')";
if ($conn->query($sql) === TRUE) {
echo "注册成功";
} else {
echo "注册失败: " . $conn->error;
}
}
// 用户登录
if ($_SERVER["REQUEST_METHOD"] == "POST" && isset($_POST['login'])) {
$username = $_POST['username'];
$password = $_POST['password'];
// 查询数据库验证用户
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = $conn->query($sql);
if ($result->num_rows == 1) {
$_SESSION['username'] = $username;
echo "登录成功,欢迎 " . $username;
} else {
echo "登录失败,用户名或密码错误";
}
}
// 用户注销
if (isset($_POST['logout'])) {
session_unset();
session_destroy();
echo "注销成功";
}
// 展示产品
$sql = "SELECT * FROM products";
$result = $conn->query($sql);
echo "<h2>产品列表</h2>";
echo "<ul>";
while ($row = $result->fetch_assoc()) {
echo "<li>" . $row['name'] . " - $" . $row['price'] . " <a href='add_to_cart.php?id=" . $row['id'] . "'>加入购物车</a></li>";
}
echo "</ul>";
// 显示购物车内容
echo "<h2>购物车</h2>";
echo "<ul>";
foreach ($_SESSION['cart'] as $product_id => $quantity) {
$sql = "SELECT * FROM products WHERE id='$product_id'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
echo "<li>" . $row['name'] . " - $" . $row['price'] . " x " . $quantity . "</li>";
}
echo "</ul>";
// 结账
if (isset($_POST['checkout'])) {
// 创建订单
$user_id = $_SESSION['user_id'];
$total_price = 0;
foreach ($_SESSION['cart'] as $product_id => $quantity) {
$sql = "SELECT * FROM products WHERE id='$product_id'";
$result = $conn->query($sql);
$row = $result->fetch_assoc();
$total_price += $row['price'] * $quantity;
}
$sql = "INSERT INTO orders (user_id, total_price) VALUES ('$user_id', '$total_price')";
if ($conn->query($sql) === TRUE) {
$order_id = $conn->insert_id;
// 将购物车中的产品添加到订单项中
foreach ($_SESSION['cart'] as $product_id => $quantity) {
$sql = "INSERT INTO order_items (order_id, product_id, quantity) VALUES ('$order_id', '$product_id', '$quantity')";
$conn->query($sql);
}
// 清空购物车
unset($_SESSION['cart']);
echo "订单创建成功,订单号:" . $order_id;
} else {
echo "创建订单失败: " . $conn->error;
}
}
// HTML 表单
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>E-commerce Website</title>
</head>
<body>
<?php if (!isset($_SESSION['username'])): ?>
<h2>用户注册</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<input type="text" name="username" placeholder="用户名" required><br>
<input type="password" name="password" placeholder="密码" required><br>
<input type="email" name="email" placeholder="邮箱" required><br>
<input type="submit" name="register" value="注册">
</form>
<h2>用户登录</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<input type="text" name="username" placeholder="用户名" required><br>
<input type="password" name="password" placeholder="密码" required><br>
<input type="submit" name="login" value="登录">
</form>
<?php else: ?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<input type="submit" name="logout" value="注销">
</form>
<?php endif; ?>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>">
<input type="submit" name="checkout" value="结账">
</form>
</body>
</html>