在数据库中,我有acc_type
列int
,如果$ _SESSION ['accountTpye'] == 1,我正在尝试对此进行编码,然后允许此用户编辑其他用户帖子,
我应该使用而不是&& ? “或,||”。
示例代码:
if(isset($_SESSION['username']) && ($_SESSION['username']==$dnn2['author'] || $_SESSION['accc_type']==1['username'])) {
echo "<a href='edit.php'>Edit</a>";
}
答案 0 :(得分:0)
if((isset($_SESSION['username']) && $_SESSION['username']==$dnn2['author']) || $_SESSION['acc_type']==1){
echo "<a href='edit.php'>Edit</a>";
}
这部分没有意义:
$_SESSION['acc_type']==1['username']
如果您只删除最后一个['用户名'],然后将会话用户名部分包装为条件的第一部分,那么acc_type不依赖于它,那么事情应该没问题
更新:
在您的login.php文件中找到此部分:
$req = mysql_query('select password,id from users where username="'.$username.'"');
$dn = mysql_fetch_array($req);
if($dn['password']==sha1($password) and mysql_num_rows($req)>0)
{
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
您还需要选择acc_type。假设它是users表中的一个字段,修改查询以阅读:
'select password,id, acc_type from users where username="'.$username.'"'
然后确保设置会话var:
$form = false;
$_SESSION['username'] = $_POST['username'];
$_SESSION['userid'] = $dn['id'];
$_SESSION['acc_type'] = $dn['acc_type'];
测试时,请确保注销,然后重新登录。
答案 1 :(得分:0)
我认为这可以解决您的问题:
if(isset($_SESSION['username']){
if( ($_SESSION['username']==$dnn2['author']) || ($_SESSION['acc_type']==1) ){
echo "<a href='edit.php'>Edit</a>";
}
}