PHP中的字符串比较问题


String comparison issue in PHP

这是一个荒谬的问题,但我正试图弄清楚手表已经有一段时间了。我有以下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哈希)。

正如@MLeFevre正确提到的那样,我的代码是正确的,但我在"if"语句中检查的初始值包含了一些空白,这导致了整个问题。我用这个函数来修剪内容:

           trim($result['userRights']);

我只是把这个贴在这里,以防有人遇到类似的问题。我甚至没有想到这是造成这个问题的原因。