我一直在寻找解决问题的时间。 我发现了几个类似的问题,但很少有这些修复适用于我,到目前为止还没有任何修复。
我通过帖子表单填充数据库,但数组变空了:
print_r($_POST);
这导致
Array()
index.php文件的完整代码:
<?php
print_r($_POST);
?>
<!DOCTYPE html>
<html>
<head>
<title> Insert games </title>
</head>
<body>
<form action="index.php" method="post">
<label for="name"> Game Name </label>
<input type="text" id="name" name="name">
<input type="submit" name="submit">
</form>
</body>
</html>
那么我们应该做的是将name
$_POST
值发送到我可以打印的同一个文件。
它与$_GET
完全正常,我知道我可以在不使用$_POST
的情况下制作此特定应用程序。但是在本项目的后期,我希望能够使用$_POST
获取更多敏感信息。
已经有几个调试代码被要求执行其他海报,这些是我在做同样的事情时得到的结果:
var_dump($_POST);
结果
array(0){}
$data = file_get_contents('php://input');
var_dump($data);
string(30) "name=TestGame&submit=Submit"
中的结果
显然,帖子数据是可见的,但我仍然不知道如何使用这些数据以及为什么$_POST
无法正常工作。
我在Windows 7上使用Xampp,Apache和MySQL处于活动状态。
如果有人能给我一些建议,我将非常感激
-Mick
答案 0 :(得分:0)
尝试放action="$_SERVER['PHP_SELF']"
并按提交按钮。
答案 1 :(得分:0)
您的代码没有任何问题。
数组([name] =&gt; test [提交] =&gt;提交)
检查您的Xampp设置。 您也可以尝试action =“/ index.php”。
答案 2 :(得分:0)
我找到了@felixsigl在本网站上不同帖子提供的一个很好的临时解决方法:Link
如下:
function getRealPOST() {
$pairs = explode("&", file_get_contents("php://input"));
$vars = array();
foreach ($pairs as $pair) {
$nv = explode("=", $pair);
$name = urldecode($nv[0]);
$value = urldecode($nv[1]);
$vars[$name] = $value;
}
return $vars;
}
$_POST = (getRealPOST());
这使用php://input
字符串并将其转换为$ _POST数组,然后可以正常使用。
我希望这可以帮助那些遇到同样问题的人。
如果有人确实发现$ _POST无法正常工作的原因,请告诉我。