三、制作追加表记录的网页addlog.php
代码如下:
<?php
// 设置字符编码
header('Content-Type: text/html; charset=utf-8');
// 检查请求方法
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
echo 'POST<br>';
// 安全获取表单数据
$name = isset($_POST['name']) ? trim($_POST['name']) : '1';
echo $name;
echo '<br>';
if ($name == '1') {
echo 'name=1<br>';
$name = '1';
} else {
echo 'name=2<br>';
$name = '2';
}
echo $name;
echo '<br>';
// 数据验证
$errors = [];
if (empty($name)) {
$errors[] = '资源不能为空<br>';
}
// 处理数据
if (empty($errors)) {
// 数据清理(防止XSS攻击)
$name = htmlspecialchars($name, ENT_QUOTES, 'UTF-8');
// 这里可以保存到数据库或发送邮件等操作
// 例如:保存到文件
//$data = "姓名: $name\n提交时间: " . date('Y-m-d H:i:s') . "\n---\n";
//file_put_contents('submissions.txt', $data, FILE_APPEND | LOCK_EX);
// 处理数据(保存到数据库等)
$servername = "localhost"; // 数据库服务器地址(本地为localhost)
$dbusername = "pi"; // 数据库用户名(如root)
$password = "1"; // 数据库密码
$dbname = "db_log"; // 要连接的数据库名
// 创建连接(面向对象风格)
$conn = new mysqli($servername, $dbusername, $password, $dbname);
// 检查连接是否成功
if ($conn->connect_error) {
die("连接失败: " . $conn->connect_error); // 连接失败则终止脚本并输出错误
$response['success'] = false;
$response['message'] = '连接失败: ' . $conn->connect_error;
}
echo "数据库连接成功!<br>";
//$sql = "SELECT host, user FROM user"; // SQL查询语句
//$result = $conn->query($sql); // 执行查询,返回结果集
try {
date_default_timezone_set('Asia/Shanghai');
$current_time = date('Y-m-d H:i:s');
if ($name == '1') {
$sql = "INSERT INTO tLog (logType, logInfo, startDT) VALUES ('1', '水', '$current_time')";
} else {
$sql = "INSERT INTO tLog (logType, logInfo, startDT) VALUES ('2', '粮', '$current_time')";
}
if (mysqli_query($conn, $sql)) {
echo "新记录插入成功<br>";
} else {
echo "错误: " . $sql . "<br>" . mysqli_error($conn);
}
} catch (Exception $e) {
// 异常处理逻辑
echo "插入记录异常: " . $e->getMessage();
}
$conn->close(); // MySQLi面向对象
//mysqli_close($conn); // MySQLi面向过程
//$conn = null; // PDO
} else {
// 显示错误信息
echo "提交失败,请检查以下错误:<br>";
foreach ($errors as $error) {
echo "- " . $error . "<br>";
}
}
} else {
echo "无效的请求方法<br>";
}
?>简单说明下,这个网页是完成从post请求中获得必要的数据后,向数据库表tLog中追加记录的处理。代码中$name的数据来自表单中名为name的输入数据。为了完成验证,制作以下addlog.html文件。注意,该网页不是必须的,仅仅是为了验证用。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>追加记录</title>
<style>
.div1 {
width: 100%;
background-color: lightblue;
}
</style>
</head>
<body>
<form action="addlog.php" method="POST">
<div>
<label for="name">资源:</label>
<input type="text" id="name" name="name" >
</div>
<div class="div1" id="responseMessage"><p id="tip"></p></div>
<button type="submit">提交</button>
</form>
</body>
</html>该文件联通上面的addlog.php一同发布到树莓派5 系统中:/var/www/html下。
在Win10测,访问http://192.168.1.96/addlog.html页面:

输入数据,点击“提交”后,成功场合,显示为:


此时查看数据库表中,应该会有一条新纪录被追加。
我要赚赏金
