在进行操作前,请确保服务器中已经安装web服务,并安装PHP7.0及以上的版本,本文是在Linux系统下进行演示操作,在Windows下同理。
本文需要对HTML/CSS,PHP,和数据库有基本认识。
本文附全部代码,将对需要修改的地方进行解析,
全端页面代码
下面是我自己制作的一个电脑检修表单
<!DOCTYPE html> <html> <head> <title>数据收集表单</title> <meta charset="UTF-8"> <style> body { font-family: Arial, sans-serif; } form { width: 500px; margin: 0 auto; } label { display: block; margin-bottom: 10px; } input[type="text"] { width: 100%; padding: 5px; font-size: 16px; } textarea { width: 100%; height: 100px; padding: 5px; font-size: 16px; } button { padding: 10px 20px; font-size: 16px; background-color: #4CAF50; color: white; border: none; cursor: pointer; } button:hover { background-color: #45a049; } </style>
</head>
<body>
<form action="./copp.php" method="post">
<h2>电脑检查收集表</h2>
<br>
<label for="username">使用用户:</label>
<select name="username">
<option value="此处是需要提交的值">显示值</option>
</select><br>
<label for="asset_number">资产编号:</label>
<input type="text" id="asset_number" name="asset_number" required><br><label for="computer_configuration">电脑配置:</label> <textarea id="computer_configuration" name="computer_configuration" required></textarea><br> <label for="software_directory">软件目录:</label> <textarea id="software_directory" name="software_directory" required></textarea><br> <label for="issue">反应问题:</label> <textarea id="issue" name="issue" required></textarea><br> <label for="solution">解决办法:</label> <textarea id="solution" name="solution" required></textarea><br> <button type="submit">提交</button> </form>
</body>
</html>
更改或者增加栏位,请在<form action="./copp.php" method="post">标签里面进行增加,每个项目请保持唯一id和name,而且id和name的值一致,后续会用到,
action="./copp.php"是需要将填写的数据提交的PHP文件路径,我这里的PHP文件与HTML文件在一起,所以就是./ 开头,代表从当下目录开始,copp.php是PHP文件名称,method="post"是提交的方式,有get 和post方式,get是将传输的数据明文的方式进行传输,post是在请求头中进行传输,比较安全,这里我使用的是post传输,具体使用那个,看个人需求。
在HTML代码form表单里面视情况增加或者删除栏位
PHP代码
<?php
header('content-type:text/html;charset=utf-8');
$servername = 'localhost';
$user = 'mycourrse';
$password = 'K455562RMetkiSn';
$dbname = 'mycourrse';mysqli = new mysqli(servername,user,password,$dbname);
if($mysqli -> connect_error){
die("连接失败".$conn->connect_error);
}
// 设置字符集
$mysqli ->set_charset('utf-8');
// 执行注册函数register($mysqli);
$mysqli ->close();
// 用户注册函数
function register($mysqli)
{
$sql = "insert into computer(username,asset_number,computer_configuration,software_directory,issue,solution) values(?,?,?,?,?,?)";
// 预处理语句
mysqli_stmt = mysqli->prepare($sql);$username = $_POST["username"]; $asset_number = $_POST["asset_number"]; $computer_configuration = $_POST["computer_configuration"]; $software_directory = $_POST["software_directory"]; $issue = $_POST["issue"]; $solution = $_POST["solution"];
// s代表字符串,一个字符串写一个S
mysqli_stmt -> bind_param('ssssss',username,asset_number,computer_configuration,software_directory,issue,$solution);
// 执行预处理
if($mysqli_stmt ->execute()){
// 成功会有新的ID返回
echo $mysqli_stmt -> insert_id;
echo PHP_EOL;
echo "<script>alert('电脑检测信息登记成功!');window.location.href='./index.html'</script>";
} else{
// 执行失败,错误信息
echo $mysqli_stmt ->error;
}
$mysqli_stmt -> free_result();
$mysqli_stmt ->close();
}
?>
在以上PHP代码中,基本上都有注释,一看就非常清楚直白,这里我介绍下。比较容易出现困惑的地方
sql = "insert into computer(username,asset_number,computer_configuration,software_directory,issue,solution) values(?,?,?,?,?,?)";</p><p>上面这句是对已经收集的信息插入到数据库中,后面的问号,代表需要插入的值</p><p>username = _POST"username";</p><p>声明一个变量username ,_POST"username"中的_POST是获取POST方法传输的数据,"username"是在前端页面中,Name的值为username的标签的值,下面的代码如法炮制,都一样。</p><p>bind_param('ssssss',username,asset_number,computer_configuration,software_directory,issue,solution);</p><p>这段代码的ssssss相对应的是每个获取的值的类型, s是字符串,如果你获取的是数字,那么它就是i</p><p>注意:</p><p>在连接数据库处,请更改为自己的数据库名和密码</p><p>servername = 'localhost'; localhost是本地数据库
user = 'mycourrse'; mycourrse数据库用户名</p><p>password = 'K455562RMetkiSn'; K455562RMetkiSn数据库密码
$dbname = 'mycourrse'; mycourrse选择那个数据库
数据库
在设计数据库时,我们需要格外注意,如设计不好,数据类型有误,都会造成数据上传提交错误。
在以上我的提交数据我设计全部为字符串,在写入数据库时使用varchat类型
下图为设计的表结构,
注意UID,这里UID作为主键存在,但在收集的表单中可以不存在,UID为设定为自增,其他的字段我们设定为varchat(255),255表示最大可以接受的文字的大小。
我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表