这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 试用树莓派5开发板-建立WEB服务器(3)

共1条 1/1 1 跳转至

试用树莓派5开发板-建立WEB服务器(3)

专家
2025-11-07 15:29:43     打赏

三、制作追加表记录的网页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页面:

图片4.png

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

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






关键词: 大懒猫的试用笔记     树莓派5     建立WEB服务器    

共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]