3

我有这个页面,其中包含一个表格。这些值被编辑到处理这些值POST的下一页( )。check_values.php现在我想添加一个验证码。但它要求您将表单重定向到 a verify.php,当我重定向到时,它似乎清除了发布的变量check_values.php。在这种情况下,我不想使用会话变量。是否有任何其他方法可以实现这一点。

4

3 回答 3

0

以下作品完美 http://www.jquery4u.com/forms/setup-user-friendly-captcha-jqueryphp/

于 2012-11-12T10:16:56.543 回答
0

是的,POST 在页面请求后不会持续存在。你必须以某种方式重新发送它们。

如果你想坚持使用 POST,在验证页面中,你可以使用POSTed 变量填充表单,然后使用 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 回答