会话无法在php中工作

时间:2012-09-27 01:43:55

标签: php session

我只为两位管理员用户创建了一个表格,我可以为其提供完全访问权限。

session_start();
$query="select * from tbl_user where username='$username' and password='$password'";
$result=mysql_query($query);
$count=mysql_num_rows($result);
if($count>0)
{          
    $row=mysql_fetch_row($result);
    if($row[0]=='1')
    {
        $_SESSION['admin']='admin';
    }
    else
    {
        $_SESSION['admin']='user';
    }
    header("Location:http://localhost/test/sample.php");
}

在这个sample.php中,我提供了这样的访问权限:

<td>
    <?php
        if($_SESSION['admin']=='admin')
        {
    ?>
    <a href='Subscribers.php'>&nbsp;Subscribers</a>
    <?php
        }
    ?>
</td>
<td>
    <a href='CreateRelease.php'>&nbsp;Releases</a>
</td>

sample.php中,我写了session_start,但是,我可以与任何用户一起登录。仅显示Releases选项。

有什么建议吗?

3 个答案:

答案 0 :(得分:2)

在每个需要会话的脚本中调用session_start()作为第一件事。

答案 1 :(得分:0)

既然你说session_start();中有sample.php,那么问题出在其他地方。

请注意,您说表tb_user的第一列是username(admin or user)

0还是1?如果没有,那么这就是问题所在:

// $row[0] is the value of username you said, how could it be 1?
if($row[0]=='1') { 

答案 2 :(得分:0)

这是一个问题:

if($row[0]=='1')

这将查看$ row的第一列。根据你的评论,这是用户名。您应该使用的是用于确定用户是否是管理员的任何内容。

// Something like this
if($row['isAdmin'] == 1)