0

リダイレクトするヘッダーに問題があります。リダイレクトしようとすると、次のように表示されます...

警告: session_start() [function.session-start]: セッション キャッシュ リミッターを送信できません - ヘッダーは既に送信されています (出力は .../head.php:7 で開始) .../init.php の 3 行目

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

ob_start と ob_flush を init.php に追加しました。同じ問題の多くがそれで解決されるのを見たからです。アイデアはありますか?

本当にありがとう!

4

1 に答える 1

1

ob_start出力を開始する前に (つまり、head.phpが呼び出される前、または の開始時にhead.php) 実行する必要があります。

最初にすべての HTML を構築し、最後にそれを出力するようにアプリケーションを設計するのが理想的です。

于 2013-05-06T21:54:34.003 に答える