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

2023-10-08 13:53:29 浏览数 (1)

在进行操作前,请确保服务器中已经安装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>

        <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复制
<?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(?,?,?,?,?,?)";

上面这句是对已经收集的信息插入到数据库中,后面的问号,代表需要插入的值

$username = $_POST"username";

声明一个变量username ,$_POST"username"中的$_POST是获取POST方法传输的数据,"username"是在前端页面中,Name的值为username的标签的值,下面的代码如法炮制,都一样。

bind_param('ssssss',$username,$asset_number,$computer_configuration,$software_directory,$issue,$solution);

这段代码的ssssss相对应的是每个获取的值的类型, s是字符串,如果你获取的是数字,那么它就是i

注意:

在连接数据库处,请更改为自己的数据库名和密码

$servername = 'localhost'; localhost是本地数据库

$user = 'mycourrse'; mycourrse数据库用户名

$password = 'K455562RMetkiSn'; K455562RMetkiSn数据库密码

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

数据库

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

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

下图为设计的表结构,

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

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

0 人点赞