PHP包括数据库连接 - 缓存限制器警告

时间:2015-04-01 09:28:24

标签: php mysql session

我几天都试图用所有在线解决方案解决这个问题,没有任何帮助。显然我错过了一个关键点,因为它在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());
}
?>

3 个答案:

答案 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 编码之前添加一些字符