嘿,我已经变成了一个非常令人沮丧的问题$ _Post变量。我将举例说明代码,而不是实际的细分来节省时间和困惑。在一个页面上我这样做:
<? echo "<form name='form' action='page.php' method='post'>
<input type='hidden' name='slot' value=".$i.">
</form>";
?>
的$ i是在一个while循环(我呼应这种简单的几次)的索引。表单本身提交了一个JavaScript。
这一切都很好,表单已正确提交并带我到另一页,我需要使用该“插槽”值来做其他垃圾。然而,当我尝试这样做:
<? echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value=".$_POST['slot'].">
//SOME OTHER HIDDEN VARS
</form>";
?>
或本...
<? echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value=";
echo $_POST['slot'];
echo ">
//SOME OTHER HIDDEN VARS
</form>";
?>
或本...
<? //TOP OF PAGE
$slots = $_POST['slot'];
?>
<? //FURTHER DOWN
<? echo "<form name='another_form' action='another_page.php' method='post'>
<input type='hidden' name='slot_num' value=".$slots.">
//SOME OTHER HIDDEN VARS
</form>";
?>
...我得到的是一个未定义指数:插槽等..错误,和PHP文件的来源只是有空白。有趣的是,如果我只是这样做:
echo $_POST['slot'];
在页面的顶部,它打印出从以前的页面的价值就好了,但是,如果我查看源,它仍然显示了一个未定义指数错误而不是数值。我知道这个值已经越过了,因为它打印出来了,但是我不能用它来做任何事情,因为如果我试图将它包含在我的php代码中,它只会显示一个错误并给出一个空白值!
我也尝试过使用$ HTTP_POST_VARS ['slots']得到相同的结果......经过几个小时的实验后,我的智慧结束了......任何建议?
“在页面顶部,它打印出前一页的值很好,但是,如果我查看源代码,它仍然显示”...我不认为我理解。这听起来像你说浏览器显示正确的数字,但源代码包含一个PHP错误消息,这是不太可能的。 – Hammerite 2010-09-14 00:24:31
另一个无关的评论:使用短标签('<?')通常被警告;见this question。 – Hammerite 2010-09-14 00:26:37
尝试在页面顶部放置'var_dump($ _ POST);'。这样你就可以看到'$ _POST'中的内容。也许这会给你一个关于这里发生了什么问题的暗示。 – Mischa 2010-09-14 00:30:35