我是php的初学者我搜索了几个小时并试着尽我所能但仍然得到这个错误。 警告:session_start()[function.session-start]:无法发送会话缓存限制器 - 已在/ home / apsterne / public_html / mag中发送的报头(在/home/apsterne/public_html/mag/main.php:1处开始输出)第3行/includes/functions.php
这是我的登录页面,我登录并进入主页
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 ;
}
}
?>
没有空格,我也不知道这是什么..
答案 0 :(得分:1)
如果您在致电session_start
之前发送任何内容(非标头),就会发生这种情况。
是否有尾随或领先的空白?您是否使用BOM utf-8对文件进行编码?
出于这个原因,通常建议省略最终的?>
php结束标记。
答案 1 :(得分:1)
我认为您的一个或多个文件中有一个空行,或者您使用UTF-8编码+咬订单标记字节保存了其中一些。尝试使用 UTF-8无BOM()保存它们。
答案 2 :(得分:1)
仔细检查main.php。引擎声称第一行有输出,可能在<?php
标记之前。 (意外BOM(旧UTF-8文件的字节顺序标记)字符?)