PHP 站点在 XAMPP 中运行良好,但在 linux 上重定向太多次
Posted
技术标签:
【中文标题】PHP 站点在 XAMPP 中运行良好,但在 linux 上重定向太多次【英文标题】:PHP site works fine in XAMPP, but redirects too many times on linux 【发布时间】:2019-03-22 16:27:42 【问题描述】:因此,在 Windows 上的 XAMPP 上,我的网站已启动并运行。但是当将完全相同的文件复制到运行 apache2 的 linux 主机时,我得到:
ERR_TOO_MANY_REDIRECTS
此页面无法正常工作
172.168.1.3 重定向您的次数过多。
尝试清除您的 cookie。
代码是:
<?php
require_once('model/user.php');
session_start();
$view = new stdClass();
$view->pageTitle = 'Login';
$user = new User();
$user->checkCookie();
if(isset($_POST['submit']))
if(!isset($_POST['username']))
// no username error
else if(!isset($_POST['password']))
// no password error
else
$user = new User();
if(isset($_POST['remember']))
if($user->login($_POST['username'], $_POST['password'], $_POST['remember']) == TRUE)
header('Location: /cliserv/search.php');
else
if($user->login($_POST['username'], $_POST['password'], FALSE) == TRUE)
header('Location: /cliserv/search.php');
if(isset($_SESSION['loggedIn']))
header('Location: /cliserv/search.php');
else
require_once('view/login.php');
我发现问题出在“model/user.php”文件中。如果我注释掉该文件顶部的“require_once()”语句:
if (!class_exists('Campsite'))
require_once('campsite.php');
if (!class_exists('DB'))
require_once('database.php');
if (!class_exists('SearchData'))
require_once('searchData.php');
该站点没有重定向错误 - 但显然该站点无法运行,因为尚未加载类。有什么想法吗?
【问题讨论】:
所以问题出在其中一个文件中,您没有包含在问题中? 我认为这不是文件中的问题。我已将所有 require_once() 语句移到浏览器访问的文件中,现在它可以正常工作了。也许这与请求一个文件的初始文件然后请求另一个文件等有关,但不确定为什么在 XAMPP 中不会出错。 @henry 是关于文件编码类型的。检查我的答案。 【参考方案1】:我认为,这与您的 session_start 和使用会话有关。
您必须将文件类型更改为UTF-8 without BOM
。那应该可以了。
您可以启用显示错误,然后将您的 header('Location: ');
替换为 exit();
看看有没有错误!
如果有任何关于无法启动会话()的错误;只需要将文件类型更改为UTF-8 without BOM
。
您必须对所有包含的文件执行此操作。
【讨论】:
以上是关于PHP 站点在 XAMPP 中运行良好,但在 linux 上重定向太多次的主要内容,如果未能解决你的问题,请参考以下文章
我的 laravel 项目在 xampp 上运行良好,但是当我尝试使用 php artisan serve 运行它时,它会超时
为啥我的 CSS 在使用 xampp 的 localhost 中不能正常工作,但在本地或从 Netlify 站点打开相同的文件时工作正常?
在 XAMPP 上运行的 GRUNT + LESS + BROWSERSYNC