PHP如何正确接收和处理form提交的数据? (form提交php怎么接收不到数据库)
在网页开发中,表单提交是一个常见的操作。PHP作为常用的服务器端语言,使用起来非常方便。但是,如果不正确地接收和处理表单提交数据,可能会导致安全漏洞,或者出现程序异常。因此,我们需要掌握PHP中如何正确接收和处理表单提交数据。
一、获取表单提交的数据
表单提交数据是通过$_POST或者$_GET方法获取的。$_POST用于获取form表单中提交method为Post的数据,$_GET用于获取method为Get的数据。我们可以通过isset方法判断是否有值传过来。
例如下面的表单:
“`html
“`
在PHP中获取的方式为:
“`php
if (isset($_POST[‘submit’])) {
$username = $_POST[‘username’];
$password = $_POST[‘password’];
}
“`
需要注意的是,使用$_POST和$_GET获取数据时,需要做好数据安全校验工作,避免SQL注入和XSS攻击等漏洞。
二、处理表单提交的数据
获取表单提交的数据只是之一步,我们还需要对数据进行逻辑处理,比如数据的验证、存储、输出等。
1. 数据的验证
在表单数据提交之前,需要对表单数据进行验证,验证方式有很多种,例如正则表达式、PHP内置函数等。
以验证用户名为例:
“`php
function check_username($username) {
$length = mb_strlen($username, ‘UTF-8’);
if ($length 20) {
return false;
}
$pattern = ‘/^[a-zA-Z0-9_]+$/’;
if (!preg_match($pattern, $username)) {
return false;
}
return true;
}
if (isset($_POST[‘submit’])) {
$username = $_POST[‘username’];
if (check_username($username)) {
// 用户名格式正确
} else {
// 用户名格式错误
}
}
“`
通过正则表达式和PHP内置函数验证是否符合格式。
2. 数据的存储
把表单提交的数据存储在数据库或者文件中,可以使用MySQLi或PDO扩展。
以MySQLi为例:
“`php
$con = mysqli_connect(“localhost”, “root”, “”, “mydb”);
if (!$con) {
die(“连接失败: ” . mysqli_connect_error());
}
$username = $_POST[‘username’];
$password = $_POST[‘password’];
$sql = “INSERT INTO user (username, password)
VALUES (‘$username’, ‘$password’)”;
if (mysqli_query($con, $sql)) {
echo “数据插入成功”;
} else {
echo “数据插入失败: ” . mysqli_error($con);
}
mysqli_close($con);
“`
3. 数据的输出
表单提交的数据可以输出到页面上,以便用户查看。
例如:
“`php
if (isset($_POST[‘submit’])) {
$username = $_POST[‘username’];
$password = $_POST[‘password’];
echo “用户名:$username,密码:$password”;
}
“`
需要注意的是,用户输入的数据需要进行HTML转义,避免XSS攻击。
三、常见问题及解决方案
1. 表单提交后,URL中可以看到参数。
这是因为表单提交方式为Get,在URL中传递参数。可以将method改为Post。
2. 可以通过Fiddler等工具修改表单提交数据。
需要做好数据校验,避免SQL注入和XSS攻击等漏洞。
3. 表单提交数据不能包括中文。
需要设置正确的字符集,例如UTF-8,可以在页面头部设置。
“`html
“`
四、
正确接收和处理表单数据是网页开发中的一个基本技能,需要掌握好表单数据的获取、存储和验证方法,以及相关的安全问题。在实际开发中,需要注意数据安全和性能,避免出现异常情况。