我试图阻止php保持表单提交但遇到困难。这是我开始的。
<?php
echo "<form action='' method='post'>
<input id='scan' class='scan' name='scan' type='submit' value='Scanning' />
</form>";
if(isset($_POST['scan'])){
echo "Very good!"
}
?>
我尝试了以下内容:
if(isset($_POST['scan'])){
echo "Very good!"
unset ($_POST);
}
if(isset($_POST['scan'])){
echo "Very good!"
unset ($_POST['scan']);
}
if(isset($_POST['scan'])){
echo "Very good!"
exit();
}
if(array_key_exists('scan',$_POST)){
echo "Very good!"
unset ($_POST);
我似乎无法弄明白。当我刷新页面或单击后退箭头进入此页面时,我希望重置$ _POST。在这个例子中,我希望文本&#34;非常好!&#34;在页面刷新时不显示。
答案 0 :(得分:0)
正如John Conde建议的那样,POST / REDIRECT / GET模式会很有用。他分享的链接将为您提供良好的合作基础。您需要处理POSTed数据而不输出任何内容,然后重定向,然后输出。
您可以过度简化并将帖子数据转储到会话变量,并在重定向的页面上处理它。
if($isset[$_POST['scan'])) {
$_SESSION['post_data'] = $_POST;
header('Location: index.php', true, 303);
}
或者你可以在POSTed页面上完成所有繁重的工作,然后重定向到输出页面。
if($isset[$_POST['scan'])) {
// do stuff with $_POST that doesn't output.
// Store results server-side with reference
// like a $_SESSION or an id.
header("Location: index.php?id=$id", true, 303);
}