Javascript 在PHP Conatct表单中重新提交错误

Javascript 在PHP Conatct表单中重新提交错误,javascript,php,jquery,forms,Javascript,Php,Jquery,Forms,为我的英语不好道歉。在我的PHP联系人表单中,当我填写内容并提交时,echo消息将显示出来 当我尝试刷新时,“确认表单重新提交”将与消息“邮件已成功发送”一起显示 我需要在刷新后提交联系人表单时的代码。页面将不会显示回显消息以及确认重新提交消息 我刚开始学习PHP,对它并不熟悉。谁能帮帮我吗 PHP脚本 <?php session_start(); if(isset($_POST['submit']) && $_POST['randcheck']==$_SESSION[

为我的英语不好道歉。在我的PHP联系人表单中,当我填写内容并提交时,
echo消息将显示出来

当我尝试刷新
时,“确认表单重新提交”
将与消息
“邮件已成功发送”
一起显示

我需要在刷新后提交联系人表单时的代码。页面将不会显示
回显消息
以及确认重新提交消息

我刚开始学习PHP,对它并不熟悉。谁能帮帮我吗

PHP脚本

<?php

session_start();

if(isset($_POST['submit']) && $_POST['randcheck']==$_SESSION['rand'])
{

$your_name = $_REQUEST['your_name'];

$email = $_REQUEST['email'];

$mobile_number = $_REQUEST['mobile_number'];

$message = $_REQUEST['message'];

$formcontent="From: $your_name \n Email: $email \n Phone Number: $mobile_number \n Message: $message";

$to = "mail@hotmail.com";

$subject = "Contact Form";

$mailheader = "From: $email \r\n";


    if (($your_name=="")||($email=="")||($message==""))
        {
        $msg = "All fields are required";
        }
    else{       

       mail($to,$subject,$formcontent,$mailheader);

        $msg = "The mail has been sent successfully";
        }
    } 


?>
<?php
   $rand=rand();
   $_SESSION['rand']=$rand;
?>

<input type="hidden" value="<?php echo $rand; ?>" name="randcheck" />

<form name="contactform" method="post" enctype="multipart/form-data">

      <label for="your_name">Your Name <font color="red">*</font></label>
      <input  type="text" name="your_name"  placeholder="Enter Your Name" maxlength="20" size="40" value="">

      <label for="email">Email Address <font color="red">*</font></label>
      <input  type="email" name="email" placeholder=" Enter Your E-mail Address" maxlength="20" size="40" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" required value="">

      <label for="mobile_number">Mobile Number</label>
      <input  type="tel" name="mobile_number" pattern="[0-9]{1}[0-9]{9}" placeholder="Enter Your Phone Number by Adding Country Code (eg: +91.,)" maxlength="30" size="40" value="">

      <label for="message">Message <font color="red">*</font></label>
      <textarea  name="message" placeholder="Your Message Goes Here" maxlength="1000" cols="62" rows="10" required></textarea>

        <input type="submit" name="submit" value="Submit">

      <div class="mail"> <?php echo $msg; ?> </div>
        </form>

HTML脚本

<?php

session_start();

if(isset($_POST['submit']) && $_POST['randcheck']==$_SESSION['rand'])
{

$your_name = $_REQUEST['your_name'];

$email = $_REQUEST['email'];

$mobile_number = $_REQUEST['mobile_number'];

$message = $_REQUEST['message'];

$formcontent="From: $your_name \n Email: $email \n Phone Number: $mobile_number \n Message: $message";

$to = "mail@hotmail.com";

$subject = "Contact Form";

$mailheader = "From: $email \r\n";


    if (($your_name=="")||($email=="")||($message==""))
        {
        $msg = "All fields are required";
        }
    else{       

       mail($to,$subject,$formcontent,$mailheader);

        $msg = "The mail has been sent successfully";
        }
    } 


?>
<?php
   $rand=rand();
   $_SESSION['rand']=$rand;
?>

<input type="hidden" value="<?php echo $rand; ?>" name="randcheck" />

<form name="contactform" method="post" enctype="multipart/form-data">

      <label for="your_name">Your Name <font color="red">*</font></label>
      <input  type="text" name="your_name"  placeholder="Enter Your Name" maxlength="20" size="40" value="">

      <label for="email">Email Address <font color="red">*</font></label>
      <input  type="email" name="email" placeholder=" Enter Your E-mail Address" maxlength="20" size="40" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" required value="">

      <label for="mobile_number">Mobile Number</label>
      <input  type="tel" name="mobile_number" pattern="[0-9]{1}[0-9]{9}" placeholder="Enter Your Phone Number by Adding Country Code (eg: +91.,)" maxlength="30" size="40" value="">

      <label for="message">Message <font color="red">*</font></label>
      <textarea  name="message" placeholder="Your Message Goes Here" maxlength="1000" cols="62" rows="10" required></textarea>

        <input type="submit" name="submit" value="Submit">

      <div class="mail"> <?php echo $msg; ?> </div>
        </form>


请使用会话变量,并尝试以下操作

session_start();

if(isset($_POST['submit']))
{

$your_name = $_REQUEST['your_name'];

$email = $_REQUEST['email'];

$mobile_number = $_REQUEST['mobile_number'];

$message = $_REQUEST['message'];

$formcontent="From: $your_name \n Email: $email \n Phone Number: 
$mobile_number \n Message: $message";

$to = "myname@hotmail.com";

$subject = "Contact Form";

$mailheader = "From: $email \r\n";


if (($your_name=="")||($email=="")||($message==""))
    {
    $_SESSION['$msg'] = "All fields are required";
    }
else{       

   mail($to,$subject,$formcontent,$mailheader);

    $_SESSION['$msg'] = "The mail has been sent successfully";
    }
}
else
{ 
   unset($_SESSION['$msg']);

}
HTML部分

<form name="contactform" method="post" enctype="multipart/form-data">

  <label for="your_name">Your Name <font color="red">*</font></label>
  <input  type="text" name="your_name"  placeholder="Enter Your Name" maxlength="20" size="40" value="">

  <label for="email">Email Address <font color="red">*</font></label>
  <input  type="email" name="email" placeholder=" Enter Your E-mail Address" maxlength="20" size="40" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$" required value="">

  <label for="mobile_number">Mobile Number</label>
  <input  type="tel" name="mobile_number" pattern="[0-9]{1}[0-9]{9}" placeholder="Enter Your Phone Number by Adding Country Code (eg: +91.,)" maxlength="30" size="40" value="">

  <label for="message">Message <font color="red">*</font></label>
  <textarea  name="message" placeholder="Your Message Goes Here" maxlength="1000" cols="62" rows="10" required></textarea>

    <input type="submit" name="submit" value="Submit">

  <div class="mail"> <?php if(isset($_SESSION['$msg'])){echo $_SESSION['$msg'] }; ?> </div>
    </form>

你的名字*
电子邮件地址*
手机号码
信息*

提交后应重定向,如果有人刷新页面,则转到重定向:

header('Location:  / new.php');
exit;
更新: 现在开始(PHP文件):

echo$msg
之后,添加以下内容

unset($msg);
问题是,当您单击submit按钮时,变量被存储,并且每当刷新页面时,初始检查
if(isset($\u POST['submit'])
返回true,因此您得到$msg

因此,只需在使用这些值后将其取消设置即可

编辑:

下面是重定向问题的解决方案。 在

致:


为什么要使用javascript和jquery标记?您必须将url重定向到相同的页面代码标题('Location:'。$\u SERVER['PHP\u SELF')@saravana我认为javascript和jquery将对此有所帮助issue@Aravind不需要JS、jQuery。但是要清楚你的问题。我无法理解这个问题。请尝试下面的解决方案,但刷新页面时,每次都会要求重新提交页面。那个错误呢?那不是错误。这是网络浏览器的一项功能。你无法摆脱它。这个问题只有一个解决方案,那就是使用Ajax,但是你需要正确地阅读问题,因为他们也不需要这个警报。解决办法不止一个。只重定向页面,警报就消失了。@MahipalPatel重新提交的解决方案是,不按F5刷新页面,只需单击URL框并按enter。但这不是一个好的解决方案,您创建了一个额外的重定向,这意味着服务器要处理一个额外的请求。
unset($msg);
<?php
   $rand=rand();
   $_SESSION['rand']=$rand;
?>
  <input type="hidden" value="<?php echo $rand; ?>" name="randcheck" />
if(isset($_POST['submit']))
if(isset($_POST['submit']) && $_POST['randcheck']==$_SESSION['rand'])