0

我在重定向标头时遇到问题。当我尝试重定向时,它会说...

警告:session_start() [function.session-start]:无法发送会话缓存限制器 - 第 3 行的 .../init.php 中的标头已发送(输出开始于 .../head.php:7)

head.php 如下:

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>grand exchange</title>

<link href="style.css" rel="stylesheet" type="text/css" />
<link href="activate.css" rel="stylesheet" type="text/css" />
</head>

init.php 如下:

<?php
ob_start();
session_start();
//error_reporting(0);

require 'core/database/connect.php';
require 'core/functions/general.php';
require 'core/functions/users.php';


if(logged_in() === true){  //bans users
    $session_user_id = $_SESSION['id'];
    $user_data = user_data($session_user_id, 'id','username', 'password','first_name',      'last_name', 'email', 'areacode');
if(user_active($user_data['username']) === false) {
    session_destroy();
    header('Location: index.php');
    exit(); 
}
}

$errors = array();
ob_flush();
?>

我在 init.php 中添加了 ob_start 和 ob_flush ,因为我看到许多相同的问题都通过它解决了。你们对我有什么想法吗?

非常感谢!

4

1 回答 1

1

ob_start需要在您开始任何输出之前完成(即在head.php甚至被调用之前,或在开始时head.php)。

理想情况下,您会设计您的应用程序以首先构建所有 HTML ,然后在最后发出它。

于 2013-05-06T21:54:34.003 回答