Php mysql错误消息

Php mysql错误消息,php,mysql,Php,Mysql,我想让事情变得简单。当我输入现有电子邮件和错误密码时,都会显示错误。当我输入错误的电子邮件地址和正确的密码格式时,将显示电子邮件的错误消息,但当我输入错误的密码和正确的电子邮件时,将显示错误消息,并且仅应显示错误的密码。我只是一个初学者,我想知道这些东西是如何工作的,但我在这里找不到解决办法。我应该为数组使用不同的名称吗? 这是我的密码: <?php session_start(); $errmsg_arr = array(); $errflag = false; //$errmsg_ar

我想让事情变得简单。当我输入现有电子邮件和错误密码时,都会显示错误。当我输入错误的电子邮件地址和正确的密码格式时,将显示电子邮件的错误消息,但当我输入错误的密码和正确的电子邮件时,将显示错误消息,并且仅应显示错误的密码。我只是一个初学者,我想知道这些东西是如何工作的,但我在这里找不到解决办法。我应该为数组使用不同的名称吗? 这是我的密码:

<?php
session_start();
$errmsg_arr = array();
$errflag = false;
//$errmsg_arr2 = array();
//$errflag2 = false;
include('config.php');


$firstname=$_POST['firstname'];
$lastname=$_POST['lastname'];
$email=$_POST['email'];
$pword=$_POST['pword'];
$number=$_POST['number'];
$house=$_POST['house'];
$street=$_POST['street'];
$city=$_POST['city'];

$min_length = 6;  
    // you can set minimum length of the query if you want  
$result = mysql_query("select 1 from athan_members where email='"
                      .  mysql_real_escape_string($email) . "'");
$userExists = (mysql_fetch_array($result) !== FALSE);
mysql_free_result($result);

if ($userExists = true){
 $errmsg_arr[] = 'email address is already used';
 $errflag = true;
}
if(strlen($pword)< $min_length){
$errmsg_arr[] = 'password must contain not less than 6 characters';
 $errflag = true;
}
else{
mysql_query("INSERT INTO athan_members (firstname, lastname, email, number, house1,     street1, city, password) VALUES ('$firstname', '$lastname', '$email', '$number', '$house',     '$street', '$city', '$pword')");
header("location: loginuser.php");
}

/*if(strlen($pword) >= $min_length){
 //this one will not feed in the database if there's a duplicate but still a problem ohmaygawd:3
//mysql_query("INSERT INTO athan_members (firstname, lastname, email, number, house1,     street1, city, password) VALUES ('$firstname', '$lastname', '$email', '$number', '$house',     '$street', '$city', '$pword') ON DUPLICATE KEY UPDATE")
mysql_query("INSERT INTO athan_members (firstname, lastname, email, number, house1,     street1, city, password) VALUES ('$firstname', '$lastname', '$email', '$number', '$house',     '$street', '$city', '$pword')");
header("location: loginuser.php");
}
else
{
$errmsg_arr[] = 'password must contain not less than 6 characters';
$errflag = true;
}*/


if ($errflag) {
        $_SESSION['ERRMSG_ARR'] = $errmsg_arr;
        session_write_close();
        header("location: new.php");
        exit();
}
mysql_close($con);
?> 
您有:

if ($userExists = true)...
它将赋值给$userExists not compare,并且该子句将始终为true(进入该部分)

您应该这样比较:

if ($userExists == true) {

  // exists 
} else {

  // not
}
并更改此密码检查代码:

if(strlen($pword)< $min_length){
$errmsg_arr[] = 'password must contain not less than 6 characters';
 $errflag = true;
}
else{
mysql_query("INSERT INTO athan_members (firstname, lastname, email, number, house1,     street1, city, password) VALUES ('$firstname', '$lastname', '$email', '$number', '$house',     '$street', '$city', '$pword')");
header("location: loginuser.php");
}
if(strlen($pword)<$min\u长度){
$errmsg_arr[]=“密码必须包含不少于6个字符”;
$errflag=true;
}
否则{
mysql_查询(“插入athan_成员(名字、姓氏、电子邮件、号码、房屋1、街道1、城市、密码)值(“$firstname”、“$lastname”、“$email”、“$number”、“$house”、“$street”、“$city”、“$pword”);
标题(“位置:logiuser.php”);
}
为此:

if(strlen($pword)< $min_length){
 $errmsg_arr[] = 'password must contain not less than 6 characters';
 $errflag = true;
}

if (!$errflag) {

// No errors.

mysql_query("INSERT INTO athan_members (firstname, lastname, email, number, house1,     street1, city, password) VALUES ('$firstname', '$lastname', '$email', '$number', '$house',     '$street', '$city', '$pword')");
header("location: loginuser.php");
}
if(strlen($pword)<$min\u长度){
$errmsg_arr[]=“密码必须包含不少于6个字符”;
$errflag=true;
}
如果(!$errflag){
//没有错误。
mysql_查询(“插入athan_成员(名字、姓氏、电子邮件、号码、房屋1、街道1、城市、密码)值(“$firstname”、“$lastname”、“$email”、“$number”、“$house”、“$street”、“$city”、“$pword”);
标题(“位置:logiuser.php”);
}

只有在密码太短时才检查。如果电子邮件已经存在,则不会。这两种方法都适用

在头调用之后需要
exit()
,并且在执行SQL语句之前需要清理变量。如果($userExists==true),甚至需要
如果变量类型为布尔值(相同的变量类型),则需要
@meda yes)当我输入错误的电子邮件和正确的密码时,会显示错误消息,但即使电子邮件已经存在,它仍会输入数据库:(哦,我的天啊,这就像一个奇迹,你是天使,发出了答案真的很高兴有人告诉我这件事,帮助我在像哈迪先生这样的专业人士的帮助下寻找问题的答案。我尊敬你,先生。^ ^ ^:()())没问题。我的荣幸:)