PHP中的字符串比较问题

时间:2015-03-24 08:15:42

标签: php string

这是一个荒谬的问题,但我试图弄清楚已经有一段时间了。我有以下PHP代码,其中我实际上做了一个简单的字符串比较,但它不起作用:

    $db = new PDO('pgsql:dbname=login;user=postgres;password=postgres;host=localhost;port=5432');
if ($db) {

    // hash the password
    $hashed_password = md5($pword);
    //echo($hashed_password);
    //AND password =:password 
    $stmt = $db->prepare("SELECT * FROM members WHERE username =:username AND password =:password ");

    $stmt->bindParam('username', $uname,PDO::PARAM_INT); // bind $uname to parameter
    $stmt->bindParam('password', $hashed_password,PDO::PARAM_INT); // bind $uname to parameter
    $stmt->execute();

    $result = $stmt->fetch();
    $rights = $result['userRights'];
//====================================================
//  CHECK TO SEE IF THE $result VARIABLE IS TRUE
//====================================================
    if ($result) {
        //echo($rights);
        $num_rows = sizeof($result);

        if ($num_rows > 0) {
            //echo($rights);
            if($rights=="write"){
                echo $rights;
                //echo("write");
                //header('Location: http://www.google.com/');

            } 
            //if($result['userRights']=="write") {
                //echo("write");

                //session_start();
                //$_SESSION['login'] = "1";

                //header ("Location: indexx.php");  
            //} 
        }
        else {
            $errorMessage = "Error logging on";
        }   
    }
    else {
        $errorMessage = "Error logging on";
    }
}

else {
    $errorMessage = "Error logging on";
} 

}

注意:我尝试做的是实现一个简单的登录/注销应用程序。我知道我使用的一些技术不是最佳实践(例如MD5哈希)。

1 个答案:

答案 0 :(得分:0)

正如@MLeFevre提到的那样,我的代码是正确的但我的初始值是我在&#34中检查的;如果"声明包括一些导致整个问题的空白区域。 我使用这个功能来修剪内容:

           trim($result['userRights']);

我发布此处,以防有人遇到类似问题。它甚至没有让我想到这导致了这个问题。