如何在当前页面上显示PHP重复输入错误消息
我正在为我正在开发的网站创建一个注册表单。我正在使用PHP将表单插入数据库。我已将useremail设置为数据库中的唯一密钥。当我输入一封已经存在于我数据库中的电子邮件时,它会将我带到一个空白页面,其中包含以下内容 错误消息:密钥“email_2”的重复条目“” 在不清除表单的情况下,如何使此消息显示在表单上方?在代码中,“服务器错误”和“两个字段必须完整”文本显示在正确的位置。如何使重复输入错误以相同的方式显示 下面是我目前拥有的PHP代码。请注意,我已成功连接到数据库,但此处未包含代码如何在当前页面上显示PHP重复输入错误消息,php,html,mysql,forms,Php,Html,Mysql,Forms,我正在为我正在开发的网站创建一个注册表单。我正在使用PHP将表单插入数据库。我已将useremail设置为数据库中的唯一密钥。当我输入一封已经存在于我数据库中的电子邮件时,它会将我带到一个空白页面,其中包含以下内容 错误消息:密钥“email_2”的重复条目“” 在不清除表单的情况下,如何使此消息显示在表单上方?在代码中,“服务器错误”和“两个字段必须完整”文本显示在正确的位置。如何使重复输入错误以相同的方式显示 下面是我目前拥有的PHP代码。请注意,我已成功连接到数据库,但此处未包含代码 $f
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$useremail = $_POST['useremail'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$birthday = $_POST['birthday'];
$sqlDate = date('Y-m-d');
if ( $firstName!=''&&$lastName!=''&&$useremail!=''&&$password!=''&&$gender!=''&&$birthday!='')
{
$sql = "INSERT INTO user (fname, lname, email, password, gender, birthday) VALUES ('$firstName', '$lastName', '$useremail', '$password', '$gender', '$birthday')";
$res = mysql_query($sql) or die(mysql_error());
if($res)
{
header('location: http://myticapp.com/thankyou.php?useremail='.$useremail);
}
else
{
echo"<center><div class=\"denied\">SERVER ERROR</div></center>";
}
}
else if(!empty($_POST))
{
echo"<center><div class=\"denied\">BOTH FIELDS MUST BE COMPLETE</div> </center>";
}
$firstName=$\u POST['firstName'];
$lastName=$\u POST['lastName'];
$useremail=$_POST['useremail'];
$password=$_POST['password'];
$gender=$_POST['gender'];
$birthday=$_POST['birthday'];
$sqlDate=date('Y-m-d');
如果($firstName!=''&&$lastName!=''&&$useremail!=''&&&$password!=''&&&$gender!=''&&&&$birth!='')
{
$sql=“在用户(fname、lname、电子邮件、密码、性别、生日)中插入值(“$firstName”、“$lastName”、“$useremail”、“$password”、“$gender”、“$birth”)”;
$res=mysql\u query($sql)或die(mysql\u error());
如果($res)
{
标题('位置:http://myticapp.com/thankyou.php?useremail=“.$useremail);
}
其他的
{
回显“服务器错误”;
}
}
如果(!空($\u POST))则为else
{
echo“两个字段必须完整”;
}
以下是表格代码:
`<form action="#" method="POST" class="signupform">
<input type="text" name="firstname" placeholder="First Name" required/>
<br>
<input type="text" name="lastname" placeholder="Last Name" required/>
<br>
<input type="text" name="useremail" placeholder="Email" required/>
<br>
<input type="text" name="password" placeholder="Password" required/>
<br>
<input type="text" name="gender" placeholder="Gender" required/>
<br>
<input type="text" name="birthday" placeholder="Birthday (YYYY-MM-DD)" required/>
<br>
<input type="submit" class="button buttonhover"/>
</form>`
`
`
插入数据前必须运行检查查询
<?
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$useremail = $_POST['useremail'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$birthday = $_POST['birthday'];
$sqlDate = date('Y-m-d');
$useremail = mysql_escape_string($useremail);
$duplicate = false;
try {
$sql = "SELECT COUNT(*) as count FROM user WHERE email = '$useremail'";
$res = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($res);
if ($data['count'] > 0) {
echo '<center>EMAIL ALREADY IN USE</center>';
$duplicate = true;
}
} catch (Exception $e) {
}
if ( $firstName!=''&&$lastName!=''&&$useremail!=''&&$password!=''&&$gender!=''&&$birthday!=''&&$duplicate==false)
{
try
{
$sql = "INSERT INTO user (fname, lname, email, password, gender, birthday) VALUES ('$firstName', '$lastName', '$useremail', '$password', '$gender', '$birthday')";
$res = mysql_query($sql) or die(mysql_error());
}
catch (Exception $e)
{
echo "<center><div class=\"denied\">", $e->getMessage(), "</div></center>";
}
if(isset($res))
{
header('location: http://myticapp.com/thankyou.php?useremail='.$useremail);
}
else
{
echo"<center><div class=\"denied\">SERVER ERROR</div></center>";
}
}
else if(!empty($_POST))
{
echo"<center><div class=\"denied\">BOTH FIELDS MUST BE COMPLETE</div> </center>";
}
插入数据之前必须运行检查查询
<?
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$useremail = $_POST['useremail'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$birthday = $_POST['birthday'];
$sqlDate = date('Y-m-d');
$useremail = mysql_escape_string($useremail);
$duplicate = false;
try {
$sql = "SELECT COUNT(*) as count FROM user WHERE email = '$useremail'";
$res = mysql_query($sql) or die(mysql_error());
$data = mysql_fetch_assoc($res);
if ($data['count'] > 0) {
echo '<center>EMAIL ALREADY IN USE</center>';
$duplicate = true;
}
} catch (Exception $e) {
}
if ( $firstName!=''&&$lastName!=''&&$useremail!=''&&$password!=''&&$gender!=''&&$birthday!=''&&$duplicate==false)
{
try
{
$sql = "INSERT INTO user (fname, lname, email, password, gender, birthday) VALUES ('$firstName', '$lastName', '$useremail', '$password', '$gender', '$birthday')";
$res = mysql_query($sql) or die(mysql_error());
}
catch (Exception $e)
{
echo "<center><div class=\"denied\">", $e->getMessage(), "</div></center>";
}
if(isset($res))
{
header('location: http://myticapp.com/thankyou.php?useremail='.$useremail);
}
else
{
echo"<center><div class=\"denied\">SERVER ERROR</div></center>";
}
}
else if(!empty($_POST))
{
echo"<center><div class=\"denied\">BOTH FIELDS MUST BE COMPLETE</div> </center>";
}
除了@EchoUA.COM handle case的答案,如果您尝试插入一封已经存在的电子邮件,您还可以尝试以下方法:
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$useremail = $_POST['useremail'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$birthday = $_POST['birthday'];
$sqlDate = date('Y-m-d');
if ( $firstName!=''&&$lastName!=''&&$useremail!=''&&$password!=''&&$gender!=''&&$birthday!='')
{
try
{
$sql = "INSERT INTO user (fname, lname, email, password, gender, birthday) VALUES ('$firstName', '$lastName', '$useremail', '$password', '$gender', '$birthday')";
$res = mysql_query($sql) or die(mysql_error());
}
catch (Exception $e)
{
echo "<center><div class=\"denied\">", $e->getMessage(), "</div></center>";
}
if(isset($res))
{
header('location: http://myticapp.com/thankyou.php?useremail='.$useremail);
}
else
{
echo"<center><div class=\"denied\">SERVER ERROR</div></center>";
}
}
else if(!empty($_POST))
{
echo"<center><div class=\"denied\">BOTH FIELDS MUST BE COMPLETE</div> </center>";
}
$firstName=$\u POST['firstName'];
$lastName=$\u POST['lastName'];
$useremail=$_POST['useremail'];
$password=$_POST['password'];
$gender=$_POST['gender'];
$birthday=$_POST['birthday'];
$sqlDate=date('Y-m-d');
如果($firstName!=''&&$lastName!=''&&$useremail!=''&&&$password!=''&&&$gender!=''&&&&$birth!='')
{
尝试
{
$sql=“在用户(fname、lname、电子邮件、密码、性别、生日)中插入值(“$firstName”、“$lastName”、“$useremail”、“$password”、“$gender”、“$birth”)”;
$res=mysql\u query($sql)或die(mysql\u error());
}
捕获(例外$e)
{
回显“$e->getMessage(),”;
}
如果(isset($res))
{
标题('位置:http://myticapp.com/thankyou.php?useremail=“.$useremail);
}
其他的
{
回显“服务器错误”;
}
}
如果(!空($\u POST))则为else
{
echo“两个字段必须完整”;
}
基本上,您会尝试执行insert查询,如果查询不成功,您将捕获错误并进行回显,然后执行其余代码。除了@EchoUA.COM answer for handle case之外,如果您尝试插入已存在的电子邮件,您还可以尝试以下操作:
$firstName = $_POST['firstname'];
$lastName = $_POST['lastname'];
$useremail = $_POST['useremail'];
$password = $_POST['password'];
$gender = $_POST['gender'];
$birthday = $_POST['birthday'];
$sqlDate = date('Y-m-d');
if ( $firstName!=''&&$lastName!=''&&$useremail!=''&&$password!=''&&$gender!=''&&$birthday!='')
{
try
{
$sql = "INSERT INTO user (fname, lname, email, password, gender, birthday) VALUES ('$firstName', '$lastName', '$useremail', '$password', '$gender', '$birthday')";
$res = mysql_query($sql) or die(mysql_error());
}
catch (Exception $e)
{
echo "<center><div class=\"denied\">", $e->getMessage(), "</div></center>";
}
if(isset($res))
{
header('location: http://myticapp.com/thankyou.php?useremail='.$useremail);
}
else
{
echo"<center><div class=\"denied\">SERVER ERROR</div></center>";
}
}
else if(!empty($_POST))
{
echo"<center><div class=\"denied\">BOTH FIELDS MUST BE COMPLETE</div> </center>";
}
$email = ($_POST['email']);
$email_duplicate_error = ("SELECT email FROM users WHERE '{$email}' ==
email");
if($email_duplicate_error){
//Your message .. .
$previous = "<script>window.history.go(-1);</script>";
echo $previous;
$firstName=$\u POST['firstName'];
$lastName=$\u POST['lastName'];
$useremail=$_POST['useremail'];
$password=$_POST['password'];
$gender=$_POST['gender'];
$birthday=$_POST['birthday'];
$sqlDate=date('Y-m-d');
如果($firstName!=''&&$lastName!=''&&$useremail!=''&&&$password!=''&&&$gender!=''&&&&$birth!='')
{
尝试
{
$sql=“在用户(fname、lname、电子邮件、密码、性别、生日)中插入值(“$firstName”、“$lastName”、“$useremail”、“$password”、“$gender”、“$birth”)”;
$res=mysql\u query($sql)或die(mysql\u error());
}
捕获(例外$e)
{
回显“$e->getMessage(),”;
}
如果(isset($res))
{
标题('位置:http://myticapp.com/thankyou.php?useremail=“.$useremail);
}
其他的
{
回显“服务器错误”;
}
}
如果(!空($\u POST))则为else
{
echo“两个字段必须完整”;
}
基本上,您会尝试执行insert查询,如果查询不成功,您将捕获错误并回显,然后执行其余代码。$email=($\u POST['email');
$email = ($_POST['email']);
$email_duplicate_error = ("SELECT email FROM users WHERE '{$email}' ==
email");
if($email_duplicate_error){
//Your message .. .
$previous = "<script>window.history.go(-1);</script>";
echo $previous;
$email\u duplicate\u error=(“选择来自用户的电子邮件,其中“{$email}”==
电邮);;
如果($email\u duplicate\u error){
//你的留言。
$previous=“window.history.go(-1);”;
回音$previous;
}$email=($_POST['email']);
$email\u duplicate\u error=(“选择来自用户的电子邮件,其中“{$email}”==
电邮);;
如果($email\u duplicate\u error){
//你的留言。
$previous=“window.history.go(-1);”;
回音$previous;
}您要插入的电子邮件似乎已经存在于数据库中,电子邮件是一个唯一的字段。我想在当前表单页面上显示一条消息,上面写着“电子邮件已经存在”。电子邮件已在我的数据库中设置为唯一字段。我只是无法在同一个页面上显示邮件。当您插入电子邮件时,在再次插入之前,请在数据库中搜索它,如果有,则搜索邮件,如果没有,则插入邮件。这是您需求的逻辑部分根据我的说法,有几种方法可以完成工作。您要插入的电子邮件似乎已经存在于数据库中,并且电子邮件是一个独特的字段。我想在当前表单页面上显示一条消息,上面写着“电子邮件已经存在”。电子邮件已在我的数据库中设置为唯一字段。我只是无法在同一个页面上显示邮件。当您插入电子邮件时,在再次插入之前,请在数据库中搜索它,如果有,则搜索邮件,如果没有,则插入邮件。这是l