php 接收到之后post数据写入数据库

2024-11-02 00:37:52
推荐回答(3个)
回答(1):

form表单demo:task.html

发布任务









扩展资料

php接收POST数据的三种方式

1、$_POST 方式接受数据

$_POST 方式是由通过HTTP的POST方法传递过来的数据组成的数组,是一个自动全局变量。

注:只能接收Content-Type:application/x-www-form-urlencode提交的数据。也就是只能接收表单过来的数据。

2、GLOBLES[‘HTTP_RAW_POST_DATA’]

如果访问原始POST数据不是php能够识别的文档类型,比如:text/xml 或者soap等等,可以用$GLOBLES[‘HTTP_RAW_POST_DATA’]来接收,$HTTP_RAW_POST_DATA变量包含有原始POST数据。此变量仅在碰到未识别的MIME数据时产生。

注:$HTTP_RAW_POST_DATA对于enctype=”multipart/form-data”表单数据不可用,也就是说使用$HTTP_RAW_POST_DATA无法接受网页表单post过来的数据。

3、file_get_contents(“php://input”);

如果访问原始POST数据,更好的方法是使用file_get_content(“php://input”);对于未指定Content-Type的POST数据,可以使用该方法读取POST原始数据,包括二进制流也可以和$HTTP_RAW_POST_DATA比起来。它带来的生存眼里更小,并且不需要任何特殊的php.ini设置。

注:php://input不能用于 enctype=”multipart/form-data”

例如:$postStr = file_get_contents("php://input"); //获取POST数据

回答(2):

header("Content-type: text/html; charset=utf-8");
if(!empty($_POST)){
$db_config = array(
        "db_host"=>"127.0.0.1",/*数据库地址,我这是本地的*/
        "db_username"=>"root",/*数据库登录名*/
        "db_userpwd"=>"As123456789",/*数据库登录密码*/
        "db_database"=>"test",/*数据库名*/
        "db_charset"=>"utf8"/*数据库字符集*/
        );
$conn = new Mysqli($db_config["db_host"],$db_config["db_username"],$db_config["db_userpwd"],$db_config["db_database"]) or die("连接数据库失败");/*链接数据库*/
$conn->set_charset($db_config["db_charset"]);/*设置字符集*/
$name = check_input($_POST['name']);
$sex = check_input($_POST['sex']);
$age = check_input($_POST['age']);
$phone = check_input($_POST['phone']);
$qq = check_input($_POST['qq']);
$email = check_input($_POST['email']);
$sql = "INSERT INTO user (`test_name`,`test_sex`,`test_age`,`test_phone`,`test_qq`,`test_email`) VALUES('{$name}',$sex,$age,'{$phone}','{$qq}','{$email}')";
$rs = $conn->query($sql);
if($rs){
echo '';
}else{
echo '';
}
}
//php防注入安全过滤函数:
function check_input($data){
        //对特殊符号添加反斜杠
        $data = addslashes($data);
        //判断自动添加反斜杠是否开启
        if(get_magic_quotes_gpc()){
            //去除反斜杠
            $data = stripslashes($data);
        }
        //把'_'过滤掉
        $data = str_replace("_", "\_", $data);
        //把'%'过滤掉
        $data = str_replace("%", "\%", $data);
        //把'*'过滤掉
        $data = str_replace("*", "\*", $data);
        //回车转换
        $data = nl2br($data);
        //去掉前后空格
        $data = trim($data);
        //将HTML特殊字符转化为实体
        $data = htmlspecialchars($data);
        return $data;
    }
?>























回答(3):

追加点悬赏咩~