0

基本上我在这里要做的是使用客户登录详细信息从我的数据库中的表中读取,然后检索与此信息匹配的记录。该表中有一个名为“AccountType”的列,用于区分普通用户和经理,如果该列为1,则他们是普通用户。如果此列为 2,则他们是经理。

现在我在我的代码中实现这个问题,下面是我的登录过程脚本的片段:

<?php

***session_start()

$query = mysql_query("SELECT * FROM accounts WHERE username='$username' and password='$password'", $db) or die ("Query failed with error: ".mysql_error());

$count=@mysql_num_rows($query);

if(***$count == 1)
    {
    ***$user_row = mysql_fetch_array($result)

        $userid = $user_row["userid"];    
        $_SESSION['userid'] = $userid;

        $customername = $user_row["customername"];    
        $_SESSION['customername'] = $customername;

        $AccountType = $user_row["accounttype"];

        if ($AccountType == 2)
        { 
            $_SESSION['manager'] = $AccountType;
        }

取决于此,当我检查每个页面包含的登录脚本时,它将在导航上显示特定链接,具体取决于帐户类型,如果他们是用户,他们将有权访问普通链接,但如果他们是经理,他们有权访问对于管理功能,以下也是此的代码片段:

***session_start();
if (***isset($_SESSION['userid'])) 
{
    $employeeid = $_SESSION['userid'];
    $firstname = $_SESSION['customername'];

    if (***isset($_SESSION['manager'])) 
    {
        $User_Options .='Manager links go here';
    }

    else
    {
    $Links .='Normal Links go here';
    }   

}

那只是一个基本的截断版本,但这为我试图完成的工作奠定了基础。我猜想使用while循环覆盖会话,我理解,但是我正在搜索的信息只有一个记录。它在某种程度上有效,但是即使 AccountType 为 1,它也会显示 2 的选项。

谁能帮助我进一步解决这个问题?谢谢!

4

1 回答 1

1

在登录表单上使用类似这样的内容:

$_SESSION['manager'] = false;
if ($AccountType == 2) {
  $_SESSION['manager'] = true;
}

然后稍后:

if ($_SESSION['manager']) {
  // display manager-only options
} else {
  // display user-only options
}
// Display options for everyone here
于 2012-09-07T21:24:06.933 回答