4 回答

TA貢獻1827條經驗 獲得超8個贊
它正在發生,因為你有一個重定向循環。這就是正在發生的事情。
用戶注銷并且會話未設置
然后將用戶重定向到 index.php,您在其中調用“config.php”
在 config.php 中,您檢查用戶是否未登錄。他沒有登錄,所以它告訴它重定向到 index.php(然后您又回到了第 2 點,然后一圈又一圈地走)
如果用戶已登錄,請將您的 config.php 更改為重定向,例如
// Redirect to the dashboard signed in
if(isset($_SESSION['user'])){
header('location: http://localhost/dashboard.php');
}

TA貢獻1906條經驗 獲得超10個贊
加載 config.php 后開始會話。否則 if 語句下的條件將始終為真,并且它將作為無限循環工作。首先啟動會話,然后加載 config.php 文件。如果您的 index.php 文件是為未登錄的用戶準備的,則在加載 index.php 時不要包含 if 塊來檢查用戶是否已登錄。因為對于來賓用戶,這將創建相同的無限循環。該部分應僅添加到登錄用戶的頁面。

TA貢獻1836條經驗 獲得超13個贊
你的 config.php 中沒有會話......所以這樣做......
<?php
session_start();
require_once 'config.php';
所以你的會話也將在 config.php 中。或者將 session_start() 行帶到 config.php,那可能會更好。

TA貢獻2037條經驗 獲得超6個贊
您已經創建了無需用戶登錄即可工作的網址白名單。例如,$whitelist = ['Users/login', 'Users/register', '/'];并在重定向條件下檢查當前網址
if(!isset($_SESSION['user']) && !in_array($current_url, $whitelist)){
header('location: http://localhost/index.php');
}
并session_start()從其他答案中發出。
- 4 回答
- 0 關注
- 393 瀏覽
添加回答
舉報