2014-09-25 45 views
0

我想仅向特定用户显示特定信息,并且我的sql查询应该可以工作,但它不会。PHP:如何检查特定用户是否登录

在login.php中有这样的代码:

$_SESSION['username'] = $user; 

,它存储的某些用户登录现在。

,但是当我申请了以下内容:

$uploaderUsername =$_SESSION['username']; 
    $result = mysql_query("SELECT status FROM meeting WHERE status = '$statuscheck' ") or die(mysql_error()); 
    $uploaderresult = mysql_query("SELECT username FROM meeting WHERE status = '$statuscheck' ") or die(mysql_error()); 

    if ($result != NULL AND $uploaderUsername = '$uploaderresult') { 

它显示的内容的“如果”到在 关于状态和$ statuscheck记录每一个用户,它是只存在于一个变量。行并且该行具有特定的用户名值 - 它不应该适用于每个用户。

为什么会发生这种情况?

+4

敢肯定,你需要'$ uploaderUsername ==“$ uploaderresult''。你只有1“=”,如果PHP的语句在这种情况下需要两个。 – Tricky12 2014-09-25 18:31:04

+2

您最后的两个查询可以合并为一个。你也不应该使用已弃用的ext/mysql函数。您甚至不会转义任何进入您的查询的意思,这意味着您可以开放SQL注入。 – Mike 2014-09-25 18:33:13

+0

@ Tricky12我已经尝试过,如果我将其更改为'=='它不显示内容既不是我想要它显示的某个用户也不是其他用户 – tototororo 2014-09-25 18:39:47

回答

1

您使用了赋值运算符'='而不是相等运算符'=='。只要改变它。

+0

@ WisdmLabs我已经尝试过了,如果我将其更改为'=='它不会显示内容既不是我想让它显示的某个用户也不是其他用户 – tototororo 2014-09-25 18:36:59

+0

@tototororo那意味着你没有得到正确的你的数据库中有'uploaderresult'。您确实需要'==',因为这是您在if语句中检查等式的方式。否则,像以前一样,它会在你不想要的时候触发。我打赌'statuscheck'不是你认为的那样,因此你没有得到正确的查询结果。 – Tricky12 2014-09-25 18:39:55

+0

@ Tricky12的事情是,我直接对phpmyadmin进行了查询,它正确地显示了我想要的输出,并且'statuscheck'也能工作,至少它在我已经应用的其他功能中起作用。它是$ statuscheck = 2; ,并检查状态= 2的行,它可以工作。那还能有什么? – tototororo 2014-09-25 18:46:03

0

为什么不向你的SQL添加一个WHERE语句来检查你的用户名?喜欢的东西:

$uploaderresult = mysql_query("SELECT * FROM meeting WHERE status = '$statuscheck' AND username = '$uploaderUsername'"); 

我可能失去了一些东西......

+0

仍然一样,显示每个用户登录的内容...我不明白为什么会发生这种情况不幸 – tototororo 2014-09-25 18:55:52

+0

你能回应$ _SESSION ['username']来验证你的设置是否正确吗? – Tim 2014-09-25 18:59:18

+0

是的,我也试过,它正确显示当前登录的用户 – tototororo 2014-09-25 19:02:25