【问题标题】:PHP Session Cache limiter header errorPHP会话缓存限制器标头错误
【发布时间】:2012-03-04 20:51:55
【问题描述】:

我是 php 的初学者,我搜索了几个小时并尽我所能尝试但仍然出现此错误。 警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 已在 /home/apsterne/public_html/mag 中发送标头(输出开始于 /home/apsterne/public_html/mag/main.php:1) /includes/functions.php 在第 3 行

这是我的登录页面,我正在登录并进入主页

include_once('includes/functions.php');
include_once('includes/connection.php');
if(loggedin())
{
    header("location:main.php");
     exit();
}
if (isset($_POST['submit'])){
$error=array();
if($_POST['username']=="") $error[]='Please Enter Username'; 
if($_POST['password']=="") $error[]='Please Enter Password';
if(isset($_GET['e'])) $error[]='You Are Trying to access secure page without login';
if(isset($_POST['rememberme'])) $remember=$_POST['rememberme'];
function cleanStr($str) {
        $cStr = trim($str);
        $cStr = htmlspecialchars($cStr);
        $cStr = addslashes($cStr);
        return $cStr;
    }
        $userName = cleanStr($_POST['username']);
        $pwd = cleanStr($_POST['password']);


$result=mysql_query("SELECT * FROM login WHERE username = '$_POST[username]'");
$row=mysql_fetch_array($result);
if(empty($error)){
                if($userName==$row['username'] && $pwd==$row['password'] ){ 
                    if($rememberme=="on")        
                          setcookie("username",$userName,time()+7200);
                   else if($rememberme==""){
                                    $_SESSION['username']=$userName;
                                    header("location:main.php");
                                    exit();
                                    }
                            }
                            else
                            $error[]='You Enter Wrong username and password';

            }
}


这是主页

<?php
include_once('includes/functions.php');
include_once('includes/connection.php');
if(!loggedin())
{
    header("location:index.php");
    exit();
}
?>


这是函数文件

<?php
session_start();
function loggedin()
{
    if(isset($_SESSION['username']) || isset ($_COOKIE['username']))
        {
         $loggedin=TRUE;
         return TRUE ;
        }
}
?>


没有空格,我不知道这是什么..

【问题讨论】:

  • 我只需将所有内容复制到新文件中,然后它就可以为我工作 感谢所有 stackoverflow 成员......它是 BOM

标签: php


【解决方案1】:

我认为您的一个或多个文件中有一个空行,或者您使用 UTF-8 编码 + 咬顺序标记字节保存了其中一些文件。尝试使用 UTF-8 without BOM 保存它们。

【讨论】:

  • 如何在没有 BOM 的情况下保存文件
  • 在 Windows 平台上,在任何其他类似的编辑器上尝试 notepad++,但例如 Netbans 保存没有 BOM 的文件。
  • 谢谢我在记事本++中打开一个新文件并将所有代码复制到该文件并保存..它对我有用...谢谢
【解决方案2】:

如果您在调用 session_start 之前发送任何内容(非标头),就会发生这种情况。 是否有尾随或前导空格?您是否使用 utf-8 with BOM 对文件进行了编码?

因此,通常建议省略最后的?&gt; php 结束标记。

【讨论】:

  • 是的,我在 utf-8 中编码了这个文件,你省略最后一个标签是什么意思?> 标签
【解决方案3】:

仔细检查 main.php。引擎声称第一行有输出,可能在&lt;?php 标签之前。 (意外的 BOM(旧 UTF-8 文件的字节顺序标记)字符?)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-04
    • 2013-06-08
    • 2016-12-14
    • 2017-10-19
    • 2012-02-07
    • 1970-01-01
    相关资源
    最近更新 更多