简体   繁体   English

其他部分不起作用,而条件在PHP中为假

[英]else part is not working whereas condition is false in php

why the else part is not working? 为什么其他部分不起作用? whereas condition is false. 条件为假。 here is the code. 这是代码。 please suggest: 请建议:

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

I think you have wrote some wrong syntax. 我认为您写了一些错误的语法。 Please replace code with below code. 请用以下代码替换代码。

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

    } 
    } 
  }

Note :- In developement mode, You should ON your error reporting . 注意 :-在开发模式下,您应该打开错误报告

Also mysql_* functions are deprecated in newer versions of PHP. 此外,较新版本的PHP不推荐使用mysql_*函数。 So use mysqli or PDO . 因此,请使用mysqliPDO

Write below lines in top of your php file to see all errors, warnings and notices. 在php文件的顶部写以下行,以查看所有错误,警告和注意事项。

error_reporting(E_ALL);
ini_set("display_errors", 1);

Rewrite your function as below:- 重写您的函数,如下所示:

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

Hope it will help you :) 希望它能对您有所帮助:)

Change your condition and use mysql_num_rows() as: 更改条件并使用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
        } 
    } 
} 

From your comments: 根据您的评论:

> use of mysql_num_rows() display blank screen. >使用mysql_num_rows()显示空白屏幕。 – Anks – Anks

Add error_reporting() at top in your file and check what errors are you getting. 在文件的顶部添加error_reporting()并检查您遇到了什么错误。

ini_set("display_errors", 1);
error_reporting(E_ALL);    

Side Note: 边注:

Please use mysqli_ * or PDO extension because mysql_* is deprecated and closed in PHP 7. 请使用mysqli_ *或PDO扩展名,因为mysql_*在PHP 7中已弃用并关闭。

Mysqli Query PHP Manual Mysqli Query PHP手册

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM