Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在当前页面上显示PHP重复输入错误消息_Php_Html_Mysql_Forms - Fatal编程技术网

如何在当前页面上显示PHP重复输入错误消息

如何在当前页面上显示PHP重复输入错误消息,php,html,mysql,forms,Php,Html,Mysql,Forms,我正在为我正在开发的网站创建一个注册表单。我正在使用PHP将表单插入数据库。我已将useremail设置为数据库中的唯一密钥。当我输入一封已经存在于我数据库中的电子邮件时,它会将我带到一个空白页面,其中包含以下内容 错误消息:密钥“email_2”的重复条目“” 在不清除表单的情况下,如何使此消息显示在表单上方?在代码中,“服务器错误”和“两个字段必须完整”文本显示在正确的位置。如何使重复输入错误以相同的方式显示 下面是我目前拥有的PHP代码。请注意,我已成功连接到数据库,但此处未包含代码 $f

我正在为我正在开发的网站创建一个注册表单。我正在使用PHP将表单插入数据库。我已将useremail设置为数据库中的唯一密钥。当我输入一封已经存在于我数据库中的电子邮件时,它会将我带到一个空白页面,其中包含以下内容

错误消息:密钥“email_2”的重复条目“”

在不清除表单的情况下,如何使此消息显示在表单上方?在代码中,“服务器错误”和“两个字段必须完整”文本显示在正确的位置。如何使重复输入错误以相同的方式显示

下面是我目前拥有的PHP代码。请注意,我已成功连接到数据库,但此处未包含代码

$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