管理员会话用户编辑帖子

时间:2012-11-29 22:10:00

标签: session admin

在数据库中,我有acc_typeint,如果$ _SESSION ['accountTpye'] == 1,我正在尝试对此进行编码,然后允许此用户编辑其他用户帖子,

我应该使用而不是&& ? “或,||”。

示例代码:

if(isset($_SESSION['username']) && ($_SESSION['username']==$dnn2['author'] || $_SESSION['accc_type']==1['username'])) {
    echo "<a href='edit.php'>Edit</a>";
}

2 个答案:

答案 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>";
   }

}