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 运行它时,它会超时

php不会使用xampp运行[重复]

为啥我的 CSS 在使用 xampp 的 localhost 中不能正常工作,但在本地或从 Netlify 站点打开相同的文件时工作正常?

在 XAMPP 上运行的 GRUNT + LESS + BROWSERSYNC

Javascript未在在线网站上加载,但在本地加载xampp

更新 cURL 而不更新 Xampp