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