3 回答

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
您已設(shè)置$_SERVER['PHP_SELF']. 這就是它重定向到同一頁(yè)面的原因。你需要改變它,例如:login.php
if(isset($_GET['logout'])) {
unset($_SESSION['username']);// do not set it as empty, unset it
//header('Location: ' . $_SERVER['PHP_SELF']);//change this line to
header('Location: login.php');
}
另一個(gè)錯(cuò)誤是在您將它重定向到的 else 條件中,index.php這就是未登錄用戶能夠看到索引頁(yè)面的原因。
else {
//header("Location: index.php");// change this to
header('Location: login.php');
}
注意:我只添加login.php了例如。將未登錄的用戶重定向到您想要的位置。

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊
首先,注銷時(shí)銷毀會(huì)話。并將其重定向到登錄頁(yè)面。假設(shè) index.php 是登錄頁(yè)面。
if(isset($_GET['logout'])) {
session_start();
session_destroy();
header('Location: index.php');
}
在 sidebar.php 中,檢查會(huì)話是否設(shè)置。如果未設(shè)置會(huì)話,則表示用戶未登錄。您可以通過(guò)將他們重定向到登錄頁(yè)面來(lái)阻止他們?cè)L問(wèn)該頁(yè)面
<?php
session_start();
if (!isset($_SESSION["username"]))
{
header("location: index.php");
} ?>
<ul>
<li class="dropdown profile_details_drop">
<a href="#" class="dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
<div class="profile_img">
<div class="user-name">
<p>
<a href="?logout=1">Logout</p>
</div>
<div class="clearfix"></div>
</div>
</a>
</li>
</ul>

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超13個(gè)贊
首先,你的代碼應(yīng)該被我美化。
其次,您忘記關(guān)閉a href標(biāo)簽,因此您的$_GET陳述 isset 不是真的。因此,通過(guò)單擊該鏈接,該頁(yè)面將再次檢查if(isset($_POST['username']))哪個(gè)是真的,并且您將被重定向到您的標(biāo)題的原因。
考慮制定的logout.php,你使用session_destroy和session_unset你重定向你的用戶login.php,例如:
登出.php:
<?php
session_start();
session_unset($_SESSION['username']);
session_unset();
session_destroy();
header('Location: login.php');
?>
最后,考慮不使用$_GET,而偏愛(ài)$_POST或$_SESSION變量,只是因?yàn)樵?URL 上不可見(jiàn)的原因。
- 3 回答
- 0 關(guān)注
- 138 瀏覽
添加回答
舉報(bào)