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="上传">
测试建议
- 使用 PHPUnit 进行单元测试
- 使用 Selenium 或 Codeception 进行功能测试
- 使用 OWASP ZAP 或 Burp Suite 进行安全测试
- 使用 Apache JMeter 或 Locust 进行性能测试
这些代码示例可以帮助你快速测试 PHP 网站的基本功能,但在生产环境中,你应该使用更完善的测试框架和方法。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.