使用php语言写一个商城系统
时间: 2024-05-04 14:21:49 浏览: 6
写一个商城系统需要考虑到众多的功能和模块,包括但不限于用户注册、登录、商品浏览、购物车、订单管理、支付接口等。以下是一个简单的商城系统的代码示例:
1. 用户注册和登录
```php
<?php
session_start();
$conn = mysqli_connect('localhost', 'root', '', 'shop');
if (isset($_POST['register'])) {
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$email = mysqli_real_escape_string($conn, $_POST['email']);
$sql = "INSERT INTO users (username, password, email) VALUES ('$username', '$password', '$email')";
mysqli_query($conn, $sql);
$_SESSION['username'] = $username;
header('location: index.php');
}
if (isset($_POST['login'])) {
$username = mysqli_real_escape_string($conn, $_POST['username']);
$password = mysqli_real_escape_string($conn, $_POST['password']);
$sql = "SELECT * FROM users WHERE username='$username' AND password='$password'";
$result = mysqli_query($conn, $sql);
if (mysqli_num_rows($result) == 1) {
$_SESSION['username'] = $username;
header('location: index.php');
} else {
echo "Incorrect username or password";
}
}
?>
```
2. 商品浏览
```php
<?php
$conn = mysqli_connect('localhost', 'root', '', 'shop');
$sql = "SELECT * FROM products";
$result = mysqli_query($conn, $sql);
while ($row = mysqli_fetch_assoc($result)) {
echo "Product name: " . $row['name'] . "<br>";
echo "Price: $" . $row['price'] . "<br>";
echo "<a href='add_to_cart.php?id=" . $row['id'] . "'>Add to cart</a><br><br>";
}
?>
```
3. 购物车
```php
<?php
session_start();
$conn = mysqli_connect('localhost', 'root', '', 'shop');
if (isset($_GET['id'])) {
$id = $_GET['id'];
if (isset($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id]++;
} else {
$_SESSION['cart'][$id] = 1;
}
}
if (isset($_GET['delete'])) {
$id = $_GET['delete'];
unset($_SESSION['cart'][$id]);
}
$total = 0;
foreach ($_SESSION['cart'] as $id => $quantity) {
$sql = "SELECT * FROM products WHERE id=$id";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$subtotal = $row['price'] * $quantity;
$total += $subtotal;
echo $row['name'] . " x " . $quantity . " = $" . $subtotal . " <a href='cart.php?delete=" . $row['id'] . "'>Delete</a><br>";
}
echo "Total: $" . $total;
?>
```
4. 订单管理
```php
<?php
session_start();
$conn = mysqli_connect('localhost', 'root', '', 'shop');
if (isset($_POST['place_order'])) {
$username = $_SESSION['username'];
$total = $_POST['total'];
$sql = "INSERT INTO orders (username, total) VALUES ('$username', $total)";
mysqli_query($conn, $sql);
$order_id = mysqli_insert_id($conn);
foreach ($_SESSION['cart'] as $id => $quantity) {
$sql = "SELECT * FROM products WHERE id=$id";
$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
$price = $row['price'];
$subtotal = $price * $quantity;
$sql = "INSERT INTO order_items (order_id, product_id, quantity, price, subtotal) VALUES ($order_id, $id, $quantity, $price, $subtotal)";
mysqli_query($conn, $sql);
}
unset($_SESSION['cart']);
header('location: orders.php');
}
?>
```
5. 支付接口
```php
<?php
session_start();
$conn = mysqli_connect('localhost', 'root', '', 'shop');
if (isset($_POST['pay'])) {
$username = $_SESSION['username'];
$total = $_POST['total'];
// Payment gateway API call here
$sql = "INSERT INTO payments (username, total) VALUES ('$username', $total)";
mysqli_query($conn, $sql);
header('location: orders.php');
}
?>
```
以上代码只是一个简单的示例,实际的商城系统需要更多的功能和模块来满足实际需求。建议使用现有的开源商城系统作为参考,例如 Magento、OpenCart、WooCommerce 等。