我遇到了问题 - 在填写表单并单击“提交”后,它会发送我填写的信息,但是当我刷新页面时,会再次发送信息。我该怎样预防呢?我的PHP代码如下所示:
<?php
function Form()
{
if (isset($_POST['submit']))
{
$to = "Test@gmail.com";
$name = $_POST['name'];
$email = $_POST['email'];
$text = $_POST['text'];
$subject = $_POST['subject'];
if (isset($_POST['name']) && !empty($_POST['name']) &&
isset($_POST['email']) && !empty($_POST['email']) &&
isset($_POST['text']) && !empty($_POST['text']) &&
isset($_POST['subject']) && !empty($_POST['subject']) &&
mail($to, $name, $email, $text, $subject))
{
echo "<div class='success'>Message has been sent!</div>";
}
else
{
}
}
}
?>
因此,当某人填写表格时,不应在刷新页面后重新发送信息。我怎样才能做到这一点?
答案 0 :(得分:0)
正如CBroe所说,您需要将重定向添加到其他页面。
if ( isset($_POST['name']) && !empty($_POST['name']) &&
isset($_POST['email']) && !empty($_POST['email']) &&
isset($_POST['text']) && !empty($_POST['text']) &&
isset($_POST['subject']) && !empty($_POST['subject']) &&
mail($to, $name, $email, $text, $subject))
{
header('Location:thankyou.php');
}
和thankyou.php
<?php
echo "Message has been sent!"; //or whatever.
?>
答案 1 :(得分:0)
if ((isset($_POST['submit'])) && (!empty($_POST['name'])))
简单检查一下用户是否在其中一个字段中输入了内容。