为什么其他部分不起作用?而条件是假的。这是代码。请建议:
function SignUp() {
if(isset($_POST['email'])){
$query = mysql_query("SELECT * FROM register WHERE email = '$_POST[email]' AND password = '$_POST[password]'") or die(mysql_error());
if(!$row = mysql_fetch_array($query) or die(mysql_error())) {
NewUser();}
else{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";}
}
}
答案 0 :(得分:0)
我认为你写了一些错误的语法。请用下面的代码替换代码。
function SignUp() {
if(isset($_POST['email'])){
$query = mysql_query("SELECT * FROM register WHERE email = '".$_POST['email']."' AND password = '".$_POST['password']."'") or die(mysql_error());
if(!$row = mysql_fetch_array($query) or die(mysql_error())) {
NewUser();
}
else{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
}
}
答案 1 :(得分:0)
注意: - 在开发模式中,您应该在error reporting上。
在较新版本的PHP中,不推荐使用mysql_*
函数。因此,请使用mysqli
或PDO
。
在php文件的顶部写下以下行,以查看所有错误,警告和通知。
error_reporting(E_ALL);
ini_set("display_errors", 1);
重写您的功能如下: -
function SignUp() {
if(isset($_POST['email'])){
$query = mysql_query("SELECT * FROM register WHERE email = '$_POST[email]' AND password = '$_POST[password]'") or die(mysql_error());
// $query returns true or false
if($query) {
NewUser();
}
else{
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
}
}
希望它会对你有所帮助:)。
答案 2 :(得分:0)
更改条件并使用mysql_num_rows()
:
function SignUp() {
if(isset($_POST['email']))
{
$query = mysql_query("
SELECT * FROM register WHERE
email = '$_POST[email]'
AND password = '$_POST[password]'
") or die(mysql_error());
// if record exist
if(mysql_num_rows($query) > 0){
echo "SORRY...YOU ARE ALREADY REGISTERED USER...";
}
else{
NewUser(); // register new user
}
}
}
来自您的评论:
>使用mysql_num_rows()显示空白屏幕。 - Anks
在文件的顶部添加error_reporting()
并检查您获得的错误。
ini_set("display_errors", 1);
error_reporting(E_ALL);
旁注:
请使用mysqli_
*或PDO
扩展名,因为不推荐使用mysql_*
并在PHP 7中关闭。
<强> Mysqli Query PHP Manual 强>