这里有什么帮助吗?
<div id="menu">
<ul>
<?php
echo ''.(!isset($_SESSION['username']) ? '<li><a href="index.php?page=$pgname"><?=ucfirst($pgname)?></a></li>' : 'b');
$pgname="login";
//$pg = "logout";
?>
<li><a href="/">Home</a></li>
<li><a href="index.php?page=register">Register</a></li>
<li><a href="index.php?page=admin">Admin</a></li>
<li><a href="index.php?page=update">Update</a></li>
<li><a href="index.php?page=profile">Profile</a></li>
<li><a href="index.php?page=$pgname"><?=ucfirst($pgname)?></a></li>
<li><a href="index.php?page=$pgname"><?=ucfirst($pgname)?></a></li>
</ul>
</div>
我希望当用户已经登录时只打印注销菜单按钮,否则当注销时,只会在菜单上显示登录。我怎么能实现这个目标?
答案 0 :(得分:0)
用此更改您的代码。
<?php
if(!isset($_SESSION['username']){
$pgname="login";
}else{
$pgname="logout";
}
echo "<li><a href='index.php?page=$pgname'>".ucfirst($pgname)."</a></li>";
?>
答案 1 :(得分:0)
这应该有效
<?php
$pgname = (!isset($_SESSION['username'])) ? 'login' : 'logout';
?>
<div id="menu">
<ul>
<li><a href="index.php?page=<?=$pgname?>"><?=ucfirst($pgname)?></a></li>
<li><a href="/">Home</a></li>
<li><a href="index.php?page=register">Register</a></li>
<li><a href="index.php?page=admin">Admin</a></li>
<li><a href="index.php?page=update">Update</a></li>
<li><a href="index.php?page=profile">Profile</a></li>
<li><a href="index.php?page=$pgname"><?=ucfirst($pgname)?></a></li>
<li><a href="index.php?page=$pgname"><?=ucfirst($pgname)?></a></li>
</ul>
</div>
答案 2 :(得分:0)
将您的PHP逻辑与HTML分开。在PHP中构建链接字符串。当您输出HTML时,在页面下方输出字符串
<?php
//make sure you've called start_session() already
$pg = isset($_SESSION['username'])? 'login':'logout';
$link_html = '<li><a href="index.php?page='.$pg.'">'.ucfirst($pg).'</a></li>';
...
?>
<!-- then in html -->
<?= $link_html ?>
<li><a href="/">Home</a></li>
答案 3 :(得分:0)
更改您的代码,如下面的代码,
<?php
$pagename = !empty($_SESSION['username']) ? 'login' : 'logout';
?>
删除最后两行&amp;改为
<li><a href="index.php?page=<?php echo $pagename;?>"><?php echo ucfirst($pagename)?></a></li>
注意:如果当前代码未被其他任何文件调用,请不要忘记在第一行开始会话