PHP$\u POST数组为空,但$\u将保持完整
我已经找了几个小时来解决我的问题。 我发现了几个类似的问题,但这些修复方法很少适用于我,到目前为止没有一个有效 我正在通过post表单填充数据库,但数组结果为空:PHP$\u POST数组为空,但$\u将保持完整,php,mysql,arrays,forms,post,Php,Mysql,Arrays,Forms,Post,我已经找了几个小时来解决我的问题。 我发现了几个类似的问题,但这些修复方法很少适用于我,到目前为止没有一个有效 我正在通过post表单填充数据库,但数组结果为空: print_r($_POST); 这导致 数组() index.php文件的完整代码: <?php print_r($_POST); ?> <!DOCTYPE html> <html> <head> <title> Insert gam
print_r($_POST);
这导致
数组()
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>
导致
数组(0){}
结果显示string(30)“name=TestGame&submit=submit”
显然,post数据是可以通过它看到的,但是我仍然不知道如何使用这些数据以及为什么$\u post
不能正常工作
我在Windows7上使用Xampp,Apache和MySQL处于活动状态
如果有人能给我一些建议,我将不胜感激
-Mick尝试放置
action=“$\u SERVER['PHP\u SELF]”并按下提交按钮。尝试放置action=“$\u SERVER['PHP\u SELF]”并按下提交按钮。您的代码没有问题
数组([name]=>test[submit]=>submit)
检查您的Xampp设置。
您也可以尝试action=“/index.php”。您的代码没有问题
数组([name]=>test[submit]=>submit)
检查您的Xampp设置。
您也可以尝试action=“/index.php”。我发现@felixsigl在本网站的另一篇文章中提供了一个很好的临时解决方案:
内容如下:
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
string并将其转换为$\u POST数组,然后可以正常使用
我希望这能帮助像我一样有同样问题的人
如果有人发现了$\u POST无法正常工作的原因,请务必告诉我。我发现@felixsigl在本网站的另一篇帖子上提供了一个很好的临时解决方案:
内容如下:
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
string并将其转换为$\u POST数组,然后可以正常使用
我希望这能帮助像我一样有同样问题的人
如果有人发现$\u POST无法正常工作,请一定要告诉我。Wierd,您是否更改了PHP.ini文件?您是否有一个htaccess
文件,其中有任何重定向/重写?@IvijanStefanStipić我见过类似的问题,PHP.ini文件以前也有问题。据说max_post_size(或类似的东西)应该是80M,“Read_Order”(名称也不是100%确定)应该是“egpc”,这两者都已经在我的php中了。ini@Andy我不太清楚你说的是什么意思?你能详细说明一下吗?@A-2-A它再次导致什么都没有,只是一个空数组,而$u POST应该在那里。维尔德,你是否更改了PHP.ini文件?你是否有一个htaccess
文件,其中有任何重定向/重写?@IvijanStefanStipić我看到过类似的问题,以前PHP.ini文件也有问题。据说max_post_size(或类似的东西)应该是80M,“Read_Order”(名称也不是100%确定)应该是“egpc”,这两者都已经在我的php中了。ini@Andy我不太清楚你说的是什么意思?你能详细解释一下吗?@A-2-A它再次导致什么都没有,只是一个空数组,在$u POST应该在那里。你说把PHP代码放在HTML中没有任何标记?当我用“$\u SERVER['PHP\u SELF']”替换我的操作时,它会将我重定向到具有该名称的页面,这会给我一个404错误。目前正在尝试将其打印到动作代码中…是的,你是对的,你应该添加一个php标记,如:action=“”
Hmm它仍然没有结果,我不相信问题在于我使用$\u GET时动作的效果很好。你说在HTML中添加php代码时没有任何标记?当我用“$\u SERVER['PHP\u SELF']”替换我的操作时,它会将我重定向到具有该名称的页面,这会给我一个404错误。目前正在尝试将其打印到操作代码中…是的,你是对的,你应该添加一个php标记,如:action=“”
Hmm它仍然没有结果,我不相信问题在于我使用$\u GET时操作的工作状态。我应该在我的Xampp设置中寻找什么?当我在我的操作前面添加“/”时,它只是将我重定向到php文件上方的目录。我相当肯定我的行为是好的?因为它使用$\u GET方法工作。我应该在Xampp设置中查找什么?当我在我的操作前面添加“/”时,它只是将我重定向到php文件上方的目录。我相当肯定我的行为是好的?因为它确实使用$\u GET方法工作。
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());