其他部分不起作用,而条件在php

时间:2016-02-09 05:54:53

标签: php forms

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

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

3 个答案:

答案 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_*函数。因此,请使用mysqliPDO

在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