亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤:本地主機重定向您的次數太多。ERR_TOO_MANY_REDIRECTS

錯誤:本地主機重定向您的次數太多。ERR_TOO_MANY_REDIRECTS

PHP
素胚勾勒不出你 2023-03-04 14:17:16
我將我的框架設置為 MVC 類型,其中核心庫重定向 url。這很有用,如果鏈接是:Some_class/some_method,它將從Some_class加載some_method。此外,我已將所有內容配置為使用.htaccess文件通過index.php。index.php 中的代碼<?phpsession_start();require_once 'config.php';if (!isset($_SESSION['username']) && empty($_GET['url'])) { ?>    <a href="Users/login">Login</a><br>    <a href="Users/register">Register</a><?php } ?>config.php中的代碼// Redirect to the homepage if not signed in    if(!isset($_SESSION['user'])){     header('location: http://localhost/index.php'); }用戶控制器中的代碼public function login(){    // Code to verify the entered credentials    // If entered data is valid    $_session['user'] = $_POST['user'];}public function log_out(){    session_unset();}如果有人從用戶控制器使用log_out方法注銷,則執行該方法。如果代碼在理想情況下是正確的,它應該重定向到index.php ,因為config.php中的代碼說如果沒有設置,它應該重定向到index.php。但是,每當有人注銷時,我都會收到標題中提到的錯誤。我在做什么錯誤?$_SESSION['user']PHPhttp重定向
查看完整描述

4 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

它正在發生,因為你有一個重定向循環。這就是正在發生的事情。

  1. 用戶注銷并且會話未設置

  2. 然后將用戶重定向到 index.php,您在其中調用“config.php”

  3. 在 config.php 中,您檢查用戶是否未登錄。他沒有登錄,所以它告訴它重定向到 index.php(然后您又回到了第 2 點,然后一圈又一圈地走)

如果用戶已登錄,請將您的 config.php 更改為重定向,例如

// Redirect to the dashboard signed in

if(isset($_SESSION['user'])){

 header('location: http://localhost/dashboard.php');

}


查看完整回答
反對 回復 2023-03-04
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

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



查看完整回答
反對 回復 2023-03-04
?
開心每一天1111

TA貢獻1836條經驗 獲得超13個贊

你的 config.php 中沒有會話......所以這樣做......


<?php

session_start();

require_once 'config.php';

所以你的會話也將在 config.php 中。或者將 session_start() 行帶到 config.php,那可能會更好。


查看完整回答
反對 回復 2023-03-04
?
阿晨1998

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()從其他答案中發出。


查看完整回答
反對 回復 2023-03-04
  • 4 回答
  • 0 關注
  • 393 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號