【发布时间】:2012-12-10 05:11:43
【问题描述】:
好的,我将直接进入这个。
我正在构建一个添加朋友按钮。如果此人与会话(登录的人)在同一行,则不应回显添加朋友。
如果人的名字在行中,并且页面 id 与会话 id 不匹配,它应该回显一个按钮。但是名称可能在两行中,我使用简单的“||”分开。 但我的 if 不起作用。尽管它在最后,但它返回“添加朋友”。我删除了第二个“或”因素,只使用了一个语句,它起作用了。
RelatedUser 和 RelatingUser 是页面 id 结果可能存在的两个可能字段。
我的代码如下:
$session_username_query = mysql_query("SELECT * FROM users WHERE username='{$_SESSION['user_login']}'");
$session_username_assoc = mysql_fetch_assoc($session_username_query);
$session_username = $session_username_assoc['username']; //the person who is logged in
$profile_view_query = mysql_query("SELECT * FROM friend WHERE RelatedUser='$session_username' OR RelatingUser='$session_username'");
$profile_view_assoc = mysql_fetch_assoc($profile_view_query);
$related = $profile_view_assoc['RelatedUser'];
$relating = $profile_view_assoc['RelatingUser'];
if ($username != $relating && $_GET['id'] != $session_username_assoc['id'] || $username != $related && $_GET['id'] != $session_username_assoc['id']) {
$addAsFriend = '<input type="submit" name="addfriend" value="Add Friend">';
echo $addAsFriend;
}
【问题讨论】:
-
添加一些符合逻辑的
()分组。if ((thing1 && thing2) || (thing3 && thing4)) -
请移除SQL注入漏洞。始终转义嵌入到 SQL 中的内容,或使用准备好的语句。请注意,不推荐使用 MySQL 扩展,您的所有 mysql 功能应切换为使用 mysqli 扩展。
-
@Sven,或者像 PDO 这样的抽象层。对吗?
-
注意! PHP 的未来版本将弃用和删除
mysql_系列函数。现在是switch to PDO(正如其他人建议的那样)或mysqli 的好时机。
标签: php