使用腾讯云服务器建立一个PHP收集表单

在进行操作前,请确保服务器中已经安装web服务,并安装PHP7.0及以上的版本,本文是在Linux系统下进行演示操作,在Windows下同理。

本文需要对HTML/CSS,PHP,和数据库有基本认识。

本文附全部代码,将对需要修改的地方进行解析,

全端页面代码

下面是我自己制作的一个电脑检修表单

代码语言:HTML
复制
<!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>

    &lt;label for=&#34;computer_configuration&#34;&gt;电脑配置:&lt;/label&gt;
    &lt;textarea id=&#34;computer_configuration&#34; name=&#34;computer_configuration&#34; required&gt;&lt;/textarea&gt;&lt;br&gt;

    &lt;label for=&#34;software_directory&#34;&gt;软件目录:&lt;/label&gt;
    &lt;textarea id=&#34;software_directory&#34; name=&#34;software_directory&#34; required&gt;&lt;/textarea&gt;&lt;br&gt;

    &lt;label for=&#34;issue&#34;&gt;反应问题:&lt;/label&gt;
    &lt;textarea id=&#34;issue&#34; name=&#34;issue&#34; required&gt;&lt;/textarea&gt;&lt;br&gt;

    &lt;label for=&#34;solution&#34;&gt;解决办法:&lt;/label&gt;
    &lt;textarea id=&#34;solution&#34; name=&#34;solution&#34; required&gt;&lt;/textarea&gt;&lt;br&gt;

    &lt;button type=&#34;submit&#34;&gt;提交&lt;/button&gt;
&lt;/form&gt;

</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
复制
<?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[&#34;username&#34;];
$asset_number = $_POST[&#34;asset_number&#34;];
$computer_configuration = $_POST[&#34;computer_configuration&#34;];
$software_directory = $_POST[&#34;software_directory&#34;];
$issue = $_POST[&#34;issue&#34;];
$solution = $_POST[&#34;solution&#34;];

// s代表字符串,一个字符串写一个S
mysqli_stmt -&gt; bind_param(&#39;ssssss&#39;,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 = &#34;insert into computer(username,asset_number,computer_configuration,software_directory,issue,solution) values(?,?,?,?,?,?)&#34;;</p><p>上面这句是对已经收集的信息插入到数据库中,后面的问号,代表需要插入的值</p><p>username = _POST&#34;username&#34;;</p><p>声明一个变量username ,_POST"username"中的_POST是获取POST方法传输的数据,&#34;username&#34;是在前端页面中,Name的值为username的标签的值,下面的代码如法炮制,都一样。</p><p>bind_param(&#39;ssssss&#39;,username,asset_number,computer_configuration,software_directory,issue,solution);</p><p>这段代码的ssssss相对应的是每个获取的值的类型, s是字符串,如果你获取的是数字,那么它就是i</p><p>注意:</p><p>在连接数据库处,请更改为自己的数据库名和密码</p><p>servername = 'localhost'; localhost是本地数据库

user = &#39;mycourrse&#39;; mycourrse数据库用户名</p><p>password = 'K455562RMetkiSn'; K455562RMetkiSn数据库密码

$dbname = 'mycourrse'; mycourrse选择那个数据库

数据库

在设计数据库时,我们需要格外注意,如设计不好,数据类型有误,都会造成数据上传提交错误。

在以上我的提交数据我设计全部为字符串,在写入数据库时使用varchat类型

下图为设计的表结构,

注意UID,这里UID作为主键存在,但在收集的表单中可以不存在,UID为设定为自增,其他的字段我们设定为varchat(255),255表示最大可以接受的文字的大小。

我正在参与2023腾讯技术创作特训营第二期有奖征文,瓜分万元奖池和键盘手表