如何为系统管理员检索除续订帐户以外的所有帐户

时间:2018-11-15 21:20:03

标签: php session

请,我是PHP的新手,正在建立一个基于订阅的电子商务网站。我已经能够自定义页面,以便根据谁在浏览什么内容而使它们看起来有所不同,但是由于他们不必订阅,我想从管理页面中删除“续订帐户”。

我整天都在挣扎。拜托,有人可以告诉我如何实现它吗? 以下是代码段:

<?php // Show the user info or the login form:
 if (isset($_SESSION['user_id'])) {

    // Show basic user options:
    echo '<div class="title">
                <h4>Manage Your Account</h4>
            </div>
            <ul>
            <li><a href="renew.php" title="Renew Your Account">Renew Account</a></li>
            <li><a href="change_password.php" title="Change Your Password">Change Password</a></li>
            <li><a href="favorites.php" title="View Your Favorite Pages">Favorites</a></li>
            <li><a href="history.php" title="View Your History">History</a></li>
            <li><a href="recommendations.php" title="View Your Recommendations">Recommendations</a></li>
            <li><a href="logout.php" title="Logout">Logout</a></li>
            </ul>
            ';

    // Show admin options, if appropriate:
    if (isset($_SESSION['user_admin'])) {
        echo '<div class="title">
                    <h4>Administration</h4>
                </div>
                <ul>
                <li><a href="add_page.php" title="Add a Page">Add Page</a></li>
                <li><a href="add_pdf.php" title="Add a PDF">Add PDF</a></li>
                <li><a href="#" title="Blah">Blah</a></li>
                </ul>
                ';      
    }

} else { // Show the login form:

    require ('login_form.inc.php');

}
?>

2 个答案:

答案 0 :(得分:1)

您可以做的是先检查是否设置了用户admin会话,并在第一条条件语句中为其添加了相同的条件值。

如果已设置,则为我命名的$renew分配一个空值,并为else{}分配一个从现有<li></li>中删除的值。

这里的前两个会话数组当然只是代表性的值。

我在菜单中串联了'.$renew.'变量。

注意:确保在使用会话的所有页面中使用session_start()启动了会话;这还不知道。

$_SESSION['user_id'] = 123;
$_SESSION['user_admin'] = "john";

if (isset($_SESSION['user_admin'])) {

$renew = '';

} else {

$renew = '<li><a href="renew.php" title="Renew Your Account">Renew Account</a></li>';

}


if (isset($_SESSION['user_id'])) {

    // Show basic user options:
    echo '<div class="title">
                <h4>Manage Your Account</h4>
            </div>
            <ul>
            '.$renew.'
            <li><a href="change_password.php" title="Change Your Password">Change Password</a></li>
            <li><a href="favorites.php" title="View Your Favorite Pages">Favorites</a></li>
            <li><a href="history.php" title="View Your History">History</a></li>
            <li><a href="recommendations.php" title="View Your Recommendations">Recommendations</a></li>
            <li><a href="logout.php" title="Logout">Logout</a></li>
            </ul>
            ';

    // Show admin options, if appropriate:
    if (isset($_SESSION['user_admin'])) {
        echo '<div class="title">
                    <h4>Administration</h4>
                </div>
                <ul>
                <li><a href="add_page.php" title="Add a Page">Add Page</a></li>
                <li><a href="add_pdf.php" title="Add a PDF">Add PDF</a></li>
                <li><a href="#" title="Blah">Blah</a></li>
                </ul>
                ';      
    }

}

答案 1 :(得分:0)

尝试..

If(!isset($_SESSION['user_admin'])) {echo '<li><a href="renew.php" title="Renew Your Account">Renew Account</a></li>'; }

这样,如果设置了admin的会话变量,则不会发生回显。