PHP 网站测试代码示例

以下是一些常用的 PHP 网站测试代码示例,可以帮助你测试网站的基本功能和安全性。

1. 基本功能测试

数据库连接测试

php

// 数据库连接测试

$host = 'localhost';

$dbname = '、;

$username = 'root';

$password = '';

try {

$conn = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);

$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

echo "数据库连接成功!";

} catch(PDOException $e) {

echo "数据库连接失败: " . $e->getMessage();

表单提交测试

php

// 表单提交处理测试

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

$name = htmlspecialchars($_POST['name'] ?? '');

$email = filter_var($_POST['email'] ?? '', FILTER_SANITIZE_EMAIL);

if (!empty($name) && filter_var($email, FILTER_VALIDATE_EMAIL)) {

echo "表单提交成功! 姓名: $name, 邮箱: $email";

} else {

echo "请输入有效的姓名和邮箱!";

"post">

姓名: "text" name="name">

邮箱: "email" name="email">

"submit" value="提交">

2. 安全测试代码

SQL 注入测试

php

// SQL 注入测试 - 使用预处理语句防止注入

$pdo = new PDO('mysql:host=localhost;dbname=test', 'user', 'pass');

$stmt = $pdo->prepare('SELECT * FROM users WHERE username = :username');

$stmt->execute(['username' => $_GET['username'] ?? '']);

$users = $stmt->fetchAll();

// 不要这样做 - 容易受到SQL注入攻击

// $unsafe_query = "SELECT * FROM users WHERE username = '" . $_GET['username'] . "'";

XSS 防护测试

php

// XSS 防护测试

$user_input = 'alert("XSS攻击!");';

$safe_output = htmlspecialchars($user_input, ENT_QUOTES, 'UTF-8');

echo "原始输入: " . $user_input . "
";

echo "安全输出: " . $safe_output;

3. API 测试

简单的 REST API 测试端点

php

// 简单的API端点

header('Content-Type: application/json');

$method = $_SERVER['REQUEST_METHOD'];

$request = explode('/', trim($_SERVER['PATH_INFO'], '/'));

$input = json_decode(file_get_contents('php://input'), true);

switch ($method) {

case 'GET':

// 处理GET请求

$data = ['message' => 'GET请求成功', 'params' => $request];

echo json_encode($data);

break;

case 'POST':

// 处理POST请求

$data = ['message' => 'POST请求成功', 'data' => $input];

echo json_encode($data);

break;

default:

http_response_code(405);

echo json_encode(['error' => '方法不允许']);

4. 性能测试

简单性能测试

php

// 性能测试

$start_time = microtime(true);

// 模拟耗时操作

for ($i = 0; $i < 100000; $i++) {

$x = $i * $i;

$end_time = microtime(true);

$execution_time = ($end_time - $start_time) * 1000;

echo "脚本执行时间: " . $execution_time . " 毫秒";

5. 文件上传测试

文件上传处理测试

php

// 文件上传测试

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_FILES['file'])) {

$upload_dir = 'uploads/';

$filename = basename($_FILES['file']['name']);

$target_path = $upload_dir . $filename;

// 验证文件类型和大小

$allowed_types = ['image/jpeg', 'image/png', 'application/pdf'];

$max_size = 5 * 1024 * 1024; // 5MB

if (in_array($_FILES['file']['type'], $allowed_types) &&

$_FILES['file']['size'] <= $max_size) {

if (move_uploaded_file($_FILES['file']['tmp_name'], $target_path)) {

echo "文件上传成功: " . htmlspecialchars($filename);

} else {

echo "文件上传失败";

} else {

echo "无效的文件类型或大小过大";

"post" enctype="multipart/form-data">

选择文件: "file" name="file">

"submit" value="上传">

测试建议

  1. 使用 PHPUnit 进行单元测试
  2. 使用 Selenium 或 Codeception 进行功能测试
  3. 使用 OWASP ZAP 或 Burp Suite 进行安全测试
  4. 使用 Apache JMeter 或 Locust 进行性能测试

这些代码示例可以帮助你快速测试 PHP 网站的基本功能,但在生产环境中,你应该使用更完善的测试框架和方法。