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

“`

四、

正确接收和处理表单数据是网页开发中的一个基本技能,需要掌握好表单数据的获取、存储和验证方法,以及相关的安全问题。在实际开发中,需要注意数据安全和性能,避免出现异常情况。

相关问题拓展阅读:

html中提交表单,但php中无法显示表单中的数据。

楼上+1,改成双引号试试

Welcome .

You are years old!

改成咐蠢双引号试试

开开php.ini中是不是关闭了 POST GET传值

程序是没有错误的,你确定你的php能正常运行么。。

写到同一个文件里看看。

我用一个表单给服务器提交数据,数据提交到了相应的PHP代码,但是将数据存入数据库中,数据库是空的。

$_get

是因为你的坏习惯…

……values(‘${_GET}’,’${_GET}’);

另外遇到这样的问题,

为什么你不试试echo sql语句出来呢?

还是那句话,想偷懒没问题,前提是你真的知道它的原理。

name名字要和数据库相同

直接用fopen()就可以

关于表单提交 用PHP后台接收值时报错

测试代码

 测试

提交

页面显示如下:

提交后

完全正常,请参照上面代码检查你的代码。

提交前的页面如果不希望出现错误提示,赋值前可加上判断

$t = isset($_POST) ? $_POST : NULL;

你获取表单数据之前要判断下有没有数据提交上来了。

这样的代码:

echo $_POST;

当然是要出错的啊。

//接收表单是一定要判断下的

if(isset($_POST)){

   echo $_POST;

}

你这个问题就是$_POST没有数据可是你却使用了$_POST

在php文件的最顶部加上

关于form提交php怎么接收不到数据库的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » PHP如何正确接收和处理form提交的数据? (form提交php怎么接收不到数据库)