# 从零到实战:用PHP开发一个简单的网站
PHP作为最流行的服务器端脚本语言之一,特别适合网站开发。本文将带领你从零开始,用PHP开发一个功能完整的简单网站。
## 一、开发环境搭建
首先我们需要搭建PHP开发环境:
### 1. 安装XAMPP或WAMP
推荐使用集成的开发环境:
- Windows用户:WAMP Server (https://www.wampserver.com/)
- Mac用户:MAMP (https://www.mamp.info/)
- 跨平台:XAMPP (https://www.apachefriends.org/)
### 2. 验证安装
安装完成后,在浏览器访问http://localhost/,如果看到欢迎页面说明安装成功。
### 3. 代码编辑器选择
推荐使用:
- Visual Studio Code + PHP插件
- PHPStorm
- Sublime Text
## 二、项目结构规划
我们的简单网站将包含以下结构:
```
/mywebsite
/css
style.css
/js
script.js
/includes
header.php
footer.php
config.php
index.php
about.php
contact.php
```
## 三、核心代码实现
### 1. 配置文件 (config.php)
```php
<?php
// 数据库配置
define('DB_HOST', 'localhost');
define('DB_USER', 'root');
define('DB_PASS', '');
define('DB_NAME', 'mywebsite');
// 网站基本配置
define('SITE_NAME', '我的PHP网站');
define('SITE_URL', 'http://localhost/mywebsite');
// 创建数据库连接
$conn = new mysqli(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error);
}
?>
```
### 2. 公共头部 (header.php)
```php
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title><?php echo SITE_NAME; ?> - <?php echo $pageTitle; ?></title>
<link rel="stylesheet" href="<?php echo SITE_URL; ?>/css/style.css">
</head>
<body>
<header>
<h1><?php echo SITE_NAME; ?></h1>
<nav>
<ul>
<li><a href="<?php echo SITE_URL; ?>/index.php">首页</a></li>
<li><a href="<?php echo SITE_URL; ?>/about.php">关于我们</a></li>
<li><a href="<?php echo SITE_URL; ?>/contact.php">联系我们</a></li>
</ul>
</nav>
</header>
<main>
```
### 3. 公共底部 (footer.php)
```php
</main>
<footer>
<p>© <?php echo date('Y'); ?> <?php echo SITE_NAME; ?></p>
</footer>
<script src="<?php echo SITE_URL; ?>/js/script.js"></script>
</body>
</html>
```
### 4. 首页 (index.php)
```php
<?php
$pageTitle = "首页";
include 'includes/config.php';
include 'includes/header.php';
?>
<h2>欢迎来到我们的网站</h2>
<p>这是一个用PHP开发的简单网站示例。</p>
<?php
// 简单的数据库查询示例
$sql = "SELECT * FROM posts ORDER BY created_at DESC LIMIT 3";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
echo "<h3>最新文章</h3>";
echo "<ul>";
while($row = $result->fetch_assoc()) {
echo "<li><a href='post.php?id=".$row['id']."'>".$row['title']."</a></li>";
}
echo "</ul>";
} else {
echo "<p>暂无文章</p>";
}
?>
<?php include 'includes/footer.php'; ?>
```
### 5. 联系我们页面 (contact.php)
```php
<?php
$pageTitle = "联系我们";
include 'includes/config.php';
include 'includes/header.php';
?>
<h2>联系我们</h2>
<?php
// 处理表单提交
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
// 简单的验证
if (!empty($name) && !empty($email) && !empty($message)) {
// 插入数据库
$stmt = $conn->prepare("INSERT INTO messages (name, email, message) VALUES (?, ?, ?)");
$stmt->bind_param("sss", $name, $email, $message);
if ($stmt->execute()) {
echo '<div class="success">感谢您的留言,我们会尽快回复!</div>';
} else {
echo '<div class="error">提交失败,请稍后再试。</div>';
}
$stmt->close();
} else {
echo '<div class="error">请填写所有字段。</div>';
}
}
?>
<form method="post" action="contact.php">
<div>
<label for="name">姓名:</label>
<input type="text" id="name" name="name" required>
</div>
<div>
<label for="email">邮箱:</label>
<input type="email" id="email" name="email" required>
</div>
<div>
<label for="message">留言内容:</label>
<textarea id="message" name="message" rows="5" required></textarea>
</div>
<button type="submit">提交</button>
</form>
<?php include 'includes/footer.php'; ?>
```
## 四、数据库设计
创建必要的数据库表:
### 1. 文章表
```sql
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
```
### 2. 留言表
```sql
CREATE TABLE messages (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
```
## 五、网站部署
开发完成后,可以按以下步骤部署到线上服务器:
1. 购买域名和虚拟主机(推荐支持PHP和MySQL的主机)
2. 通过FTP上传所有文件到public_html或www目录
3. 导入数据库到线上MySQL服务器
4. 修改config.php中的数据库配置
5. 测试网站各项功能
## 六、安全增强建议
1. 使用预处理语句防止SQL注入
2. 对用户输入进行过滤和验证
3. 密码使用password_hash()函数加密
4. 重要操作添加CSRF防护
5. 错误报告在生产环境中关闭
## 七、进阶学习方向
1. 学习使用PHP框架(Laravel、Symfony等)
2. 实现用户注册登录系统
3. 开发RESTful API
4. 学习前端技术(Vue.js、React等)与PHP结合
5. 探索缓存技术和性能优化
通过这个简单的项目,你已经掌握了PHP网站开发的基本流程。继续深入学习和实践,你很快就能开发出更复杂的Web应用!