2011-11-21 36 views
0

我的if语句有问题。“If statement”来检查两个不同的用户ID是否匹配

我希望存档: - 如果发件人ID的用户ID相匹配=授予访问权限 - 如果接收方ID的用户ID相匹配=授予访问权限

目前我只有这个:

if($pmData['sender_id']!=$userdata['id'] && $pmData['receiver_id']!=$userdata['id']) 
    redirect("?i=a"); 

但是,正如你所看到的,在这个声明中,BOTH发送者ID和接收者ID与用户ID非常匹配。

如何将其他档案归档?

+0

我当然需要更多关于你的网站结构的信息,在这种情况下发送者和接收者之间有什么区别。更多信息请 –

回答

3
更换 &&(AND)

使用or/||而不是&&

if ($pmData['sender_id'] == $userdata['id'] || $pmData['receiver_id'] == $userdata['id']) { 
    redirect("?i=a"); 
} 
+0

这只是说意外的“==” – oliverbj

+0

@ user169691对不起,编辑。 – evuez

2

你想要的是将两者与||(或)而不是&&(和)组合。

2
if($pmData['sender_id'] == $userdata['id'] || $pmData['receiver_id'] == $userdata['id']){ 
    // Grant Access 
} 
else{ 
    // Deny Access 
} 
1

假设变量被称为$sender$receiver$user

if ($sender == $user || $receiver == $user) { allow(); } 
else { forbid(); } 
1

如果我理解你的问题,你只需要一个||(OR)

0

想想这样。 & &表示“两者都必须符合条件”。 ||意味着“一方或另一方必须符合条件”。

有||就像在一个中有两个不同的if语句一样,& &就像是在if语句中有一个if语句,以便执行某些操作。