无法通过PHP中的POST方法发送数据

时间:2018-10-04 12:42:11

标签: php post methods

GET有效,但POST不起作用。 Error_log为空。当我直接运行此代码以编写post_error时。

我添加了此代码,并将此错误写入了日志文件。

error_log(print_r($_POST,true));
  

[2018年10月4日星期四12:17:35.610967] [fcgid:warn] [pid 16802] [客户端162.158.90.26:54114] mod_fcgid:stderr:阵列

     

[2018年10月4日星期四12:17:35.611010] [fcgid:warn] [pid 16802] [客户端162.158.90.26:54114] mod_fcgid:stderr:(

     

[2018年10月4日星期四12:17:35.611014] [fcgid:warn] [pid 16802] [客户端162.158.90.26:54114] mod_fcgid:stderr:)

<?php
include('mobiItıraf_dbConfig.php');

if($_SERVER['REQUEST_METHOD'] == 'POST'){   
    if(isset($_POST['key']) and isset($_POST['nick']) and isset($_POST['pass']) and isset($_POST['pass_saver'])){
        $key = $_POST['key'];
        $user_nick = $_POST['nick'];
        $user_pass = $_POST['pass'];
        $pass_sever = $_POST['pass_saver'];         
        if($key == "1"){
            $query = $db->prepare("INSERT INTO mobiItiraf_users SET user_nick = ?, user_pass = ?, pass_sever = ?");
            $insert = $query->execute(array($user_nick,$user_pass,$pass_sever));
            if($insert){
                echo "in";
            }else{
                echo "not in";
            }
        }else{
            echo "key error";
        }
    }else{
        echo "isset error";
    }
}else{
    echo "post_error";
}

?>

1 个答案:

答案 0 :(得分:0)

$_SERVER["REQUEST_METHOD"]在某些PHP Apache2服务器上可能包含HTTP GET请求的POST。

第一个解决方案是使用===而不是==,因为$_SERVER['REQUEST_METHOD']可以返回0值或大小写冲突

if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST')

或者一种简单的方法是仅使用

if ($_POST) 

@edit:如果这样行不通,请执行$ _POST的var_dump

希望有帮助。