我正在開發一個用戶必須先登錄的網站,然後他們才能訪問他們的個人資料。但我不知道如何限制用戶通過在地址欄中鍵入sitename.com/profile.php來直接訪問配置文件頁面。我碰到這個代碼來了,而在Stack Overflow上搜索 這是我的login.php腳本限制訪問特定頁面
if(!empty($row['username']) AND !empty($row['password']))
{
$_SESSION['login'] = true;
$_SESSION['username'] = $row['username'];
echo '<script>window.location = "profile.php"</script>';
}
現在在profile.php頂部我已經把這段代碼
<?php
session_start();
if (!$_SESSION['login']){
echo '<script>window.location = "index.html"</script>';
}
?>
的用戶仍然可以訪問通過直接輸入URL來配置profile.php。我究竟做錯了什麼?
不要使用'回聲'';'它會導致包含整個網頁的瀏覽器往返,只是爲了讓瀏覽器從服務器請求另一個頁面而忽略它,使用'header('Location: profile.php在'login.php'形式頂部的‘命令爲好;');退出;' – RiggsFolly 2014-09-30 03:19:21
由於它的工作,如果我不鍵入時退出;到底 – 2014-09-30 03:27:01
添加了’在session_start()。一旦你開始使用會話,你必須在應用程序的EVERY頁面頂部添加'session_start();'來維護會話。 – RiggsFolly 2014-09-30 03:31:29