这是一个荒谬的问题,但我试图弄清楚已经有一段时间了。我有以下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哈希)。
答案 0 :(得分:0)
正如@MLeFevre提到的那样,我的代码是正确的但我的初始值是我在&#34中检查的;如果"声明包括一些导致整个问题的空白区域。 我使用这个功能来修剪内容:
trim($result['userRights']);
我发布此处,以防有人遇到类似问题。它甚至没有让我想到这导致了这个问题。