Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/294.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
else部分不工作,而php中的条件为false_Php_Forms - Fatal编程技术网

else部分不工作,而php中的条件为false

else部分不工作,而php中的条件为false,php,forms,Php,Forms,为什么else部分不起作用?而条件是假的。这是代码。请建议: 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_

为什么else部分不起作用?而条件是假的。这是代码。请建议:

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...";} 
    } 
  } 

我认为你写了一些错误的语法。请用下面的代码替换代码

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...";

    } 
    } 
  }

注意:-在开发模式下,您应该打开您的

在较新版本的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...";
        } 
    } 
} 

希望它能帮助您:)

更改您的条件并使用
mysql\u num\u 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()显示空白屏幕脚踝

在文件顶部添加
error\u reporting()
,并检查您收到的错误

ini_set("display_errors", 1);
error_reporting(E_ALL);    
旁注:

请使用
mysqli\
*或
PDO
扩展,因为
mysql\*
在PHP7中已被弃用和关闭


如果(!$row=mysql\u fetch\u数组($query)或死亡(mysql\u error()){
由于它通过放置
返回
false
您正在使其为真,因此您的其他条件无法检查记录是否已存在于表中。并且不要使用
mysql*
函数,它们从PHP5.5开始就被弃用,在PHP7.0中被完全删除。请使用或当条件为false时,int out指出问题所在。删除后!它返回键primary的重复项。现在,如果数据库中已经存在用户,则条件中只会出现空白屏幕。如何使用mysql_i和PDO此链接将帮助您。@Anks:我的朋友是什么?@Anks:…但在此之前,请解决您的问题,然后继续mysqli@Anks:很高兴帮助你