POST值不会出现在recaptcha中

时间:2012-11-12 09:11:41

标签: php post recaptcha

我有这个包含表格的页面。这些值POST转到下一页(check_values.php),后者操纵这些值。现在我想添加一个验证码。但它要求您将表单重定向到verify.php,这似乎在我重定向到check_values.php时清除已发布的变量。在这种情况下,我不想使用会话变量。有没有其他方法可以实现这一目标。

3 个答案:

答案 0 :(得分: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解释的那样。

答案 1 :(得分:0)

您也可以使用查询字符串

在您的verify.php页面中,将查询字符串添加到该位置,即

header('Location: check_values.php?captcha='.$postedValue.'');

然后在check_values.php中,您可以使用$_GET来捕获该值。

$value = $_GET['captcha'];

但请确保清理来自查询字符串的所有数据

答案 2 :(得分:0)