我几天都试图用所有在线解决方案解决这个问题,没有任何帮助。显然我错过了一个关键点,因为它在localhost上工作,但是当我把它放在网上它没有。
错误: 警告:session_start():无法发送会话缓存限制器 - 已在第3行的/home/public_html/domain/index.php中发送的标头(输出从/home/public_html/domain/index.php:1开始)
的index.php
<?php
session_start();
include('functions/connect.php');
$page = htmlentities($_GET['page']);
include('functions/' . $page . '.func.php');
$pages = scandir('pages');
if (!empty($page) && in_array($_GET['page'] . '.php', $pages)) {
$content = 'pages/' . $_GET['page'] . '.php';
} else {
header('Location:index.php?page=register');
}
if (isset($_SESSION['uesername'])
) {
header("Location:index.php?page=member");
}
?>
<!DOCTYPE html>
<html>
<head>
<link href="css/mojcss.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id='content'>
<?php
include($content);
?>
</div>
</body>
</html>
connect.php
<?php
$link = @mysql_connect('localhost','myusername','mypass'); //or die('error');
if(!$link)
{
$message="<strong><font color='red'>Error, try later.</font></strong><br /><br />";
die($message.mysql_error());
}
$db = mysql_select_db('mydb'); //or die('unable to connect');
if(!$db)
{
$message="<strong><font color='red'>Error, try later.</font></strong><br /><br />";
die($message.mysql_error());
}
?>
答案 0 :(得分:1)
检查服务器上是否有另一个会话已阻止session_start()初始化。
答案 1 :(得分:0)
把session_start();在函数/ connect.php的最顶层,确保代码中有单个session_start()。还要重新启动localhost并从tmp目录中删除所有会话文件。
答案 2 :(得分:0)
1.在 session_start()语句之前写入 ob_start()。
或 如果解决方案一不适合您,请确保在session_start()语句之前没有任何内容发送到浏览器。如果 session_start()之前或标记之前存在空格或某些字符,则会发生这种情况。如果是这种情况,请删除空格或charactors.It将解决“无法发送会话缓存限制”问题。 要么 如果两个解决方案没有任何区别,但仍然遇到与尝试从UTF-8设置编码相同的问题。 UTF-8 编码之前添加一些字符