Javascript 在PHP Conatct表单中重新提交错误
为我的英语不好道歉。在我的PHP联系人表单中,当我填写内容并提交时,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[
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'])