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";
}
?>
答案 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
希望有帮助。