doudan4834 2013-05-06 21:50
浏览 69
已采纳

网站头部的标头重定向错误

Im having a problem with header to redirect. When I try to redirect, it says this...

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at .../head.php:7) in .../init.php on line 3

head.php is as follows:

<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 is as follows:

<?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();
?>

I added an ob_start and ob_flush to init.php because ive seen many of the same problems solved with that. Do you guys have an ideas for me?

Thanks so much!

  • 写回答

1条回答 默认 最新

  • dqoag62688 2013-05-06 21:54
    关注

    ob_start needs to be done before you start any output at all (i.e. before head.php is even called, or at the start of head.php).

    Ideally you would design your application to build all of the HTML first and emit it at the end.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?