我有一个弹出式注册表,注册工程很好,但如果用户输入无效的电子邮件和提交它关闭的表单,当用户打开它的另一个时间或刷新页面时,只有错误出现意味着错误消息工作,但没有在适当的时间或我不知道发生了什么。
这是我的PHP注册码:
<?php
if (isset($_POST['submit'])) {
$password = md5($_POST["password"]);
$link = mysqli_connect("localhost","root","mysql");
mysqli_select_db($link,"myuser");
$count = 0;
$res = mysqli_query($link,"select * from register where email='$_POST[email]'") ;
$count = mysqli_num_rows($res);
if ($count>0) {
$emailErr = "Email already exists";
}
else{
mysqli_query($link,"insert into register values('','$_POST[username]' ,'$_POST[email]' ,'$password')");
header("location:index.php");
}
}
?>这是我的html弹出表单代码:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
<div class="modal2">
<div class="modal2_close close2"></div>
<div class="modal2_main">
<div class="login-screen">
<div class="app-title">
<h1>Sign Up</h1>
</div>
<div><img src="images/common.png" class="circle"></div>
<div class="login-form">
<div class="control-group">
<input type="text" class="login-field" value="" placeholder="username" name="username" required pattern="^[A-Za-z0-9]+">
<label class="login-field-icon fui-user" for="login-name"></label>
</div>
<div class="control-group2">
<input type="text" class="login-field" value="" placeholder="Email" name="email" required pattern="^[A-Za-z0-9]+">
<label class="login-field-icon fui-user" for="login-name"></label>
<span><?php echo $emailErr;?></span>
</div>
<div class="control-group">
<input type="password" class="login-field" value="" placeholder="password" name="password" required
pattern="^[A-Za-z0-9]+">
<label class="login-field-icon fui-lock" for="login-pass"></label>
</div>
<button name="submit" class="btn btn-primary btn-large btn-block">Register</button>
</div>
</div>
</div>
</div>
</form>发布于 2017-04-20 14:50:15
实际上当你提交表格的时候。它将重新加载页面。并且在提交表单后肯定会关闭弹出窗口。
因此,我建议您使用ajax提交表单,并根据ajax响应显示成功/错误消息。
参考this链接,了解如何使用ajax提交表单
https://stackoverflow.com/questions/43511235
复制相似问题