我有这个页面,其中包含一个表格。这些值被编辑到处理这些值POST
的下一页( )。check_values.php
现在我想添加一个验证码。但它要求您将表单重定向到 a verify.php
,当我重定向到时,它似乎清除了发布的变量check_values.php
。在这种情况下,我不想使用会话变量。是否有任何其他方法可以实现这一点。
问问题
179 次
3 回答
0
于 2012-11-12T10:16:56.543 回答
0
是的,POST 在页面请求后不会持续存在。你必须以某种方式重新发送它们。
如果你想坚持使用 POST,在验证页面中,你可以使用POST
ed 变量填充表单,然后使用 Javascript 提交它。就像是
<form id='blah' method='post' action='check_values.php'>
<input type='hidden' value='<?php echo $_POST['var1']; ?>' />
<input type='hidden' value='<?php echo $_POST['var2']; ?>' />
</form>
<script type='text/javascript'>
document.getElementById("blah").submit();
</script>
另一个选项是stream_context_create,您可以在其中发送带有 POST 数据的重定向标头。但这可能仅对打开流有用,并且重定向可能很困难。
当然,最简单的方法是使用重定向标头并使用 GET 发送数据,正如@asprin 解释的那样。
于 2012-11-12T09:15:36.350 回答
0
您也可以使用查询字符串
在您的verify.php
页面中,将查询字符串添加到该位置,即
header('Location: check_values.php?captcha='.$postedValue.'');
然后在 中check_values.php
,您可以使用$_GET
来捕获该值。
$value = $_GET['captcha'];
但请确保清理来自查询字符串的所有数据
于 2012-11-12T09:18:29.630 回答