我正在尝试测试是否点击了特定的链接文本,因为相同的链接可以有“登录”或“注销”文本,但它没有注册它是一个有效的链接
的index.php:
<body>
<nav>
<ul>
<li id="login">
<?php
if (isset($_SESSION['logged_user']))
echo "<a href='index.php?link=login'>Login";
else
echo "<a href='index.php?link=logout'>Logout";
?>
</a>
</li>
</ul>
</nav>
//LOGOUT
if ($_GET['link']=='logout') {
unset($_SESSION["logged_user"] );
unset( $_SESSION );
$_SESSION = array();
session_destroy();
}
错误:
Undefined index: link
答案 0 :(得分:1)
将此更改为
if ($_GET['link']=='logout') {
:此强>
if (isset($_GET['link']) && $_GET['link']=='logout') {
答案 1 :(得分:1)
当PHP页面加载时,PHP编译器检查GET数组中的链接属性,直到你点击它为止。因此,您必须使用isset函数来处理这种情况,以便它只在可用时验证。
if (isset($_GET['link']) && $_GET['link']=='logout')
希望这会有所帮助!!
答案 2 :(得分:1)
我猜最上面可能会遗漏session_start();
以允许您使用$_SESSION['logged_user']
;
if(session_status() == PHP_SESSION_NONE){
session_start();
}
还有:
<?php
if (isset($_GET['link']) && $_GET['link']=='logout') {
unset($_SESSION["logged_user"] );
unset( $_SESSION );
$_SESSION = array();
session_destroy();
// echo "Hello";
}
?>
祝你好运