请,我是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');
}
?>
答案 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的会话变量,则不会发生回显。