2012-10-24 110 views
0

可能重複:
Headers already sent by PHP爲什麼我會得到這些php session_start()錯誤?

這些都是錯誤的:

我構建我在不同的目錄的項目,相關文件的繼承人代碼:

FILE:init:

<?php 
session_start(); 
require 'database/connect.php'; 


?> 

FILE:Oheader:

<body> 
<?php include 'includes/header.php';?> 

FILE:頭:

<head> 
<title>Project47</title> 
<meta charset="utf-8" /> 
<link rel="stylesheet" href="css/pjcss.css"> 
</head> 

任何人都不會有爲什麼發生這種情況的任何想法...代碼上面顯示是每個文件的全部

+1

你和你在哪裏包括init.php? – GBD

+0

您是否讀過錯誤OP? –

+0

會話可以修改您的標題。所以在輸出任何內容之前使用它。 –

回答

1

其原因你輸出的東西之前啓動會話

甚至空白的會議開始前,導致此警告

和頭部已經發送時也因爲事情是頭

enter image description here

+0

對包含文件中的尾隨空格也感到厭倦。如果在預期輸出之前包含它們,則可能導致類似的錯誤。避免這種情況的一個技巧就是在文件末尾打開php。 IE,不要把關閉?>放在像database/connect.php這樣的文件中 –

+1

只是爲了添加一個可能幫助其他人的信息:如果你確定在'session_start'之前沒有寫入任何字符,並且錯誤依然存在你可能用BOM(字節順序標記)保存你的文件,在你的編輯器中應該有一個選項來選擇一個編碼,比如'UTF-8 without BOM' – Delta

+0

@Delta :)非常好的你 –

0

寫之前發送php代碼和頂部的include語句。然後開始寫html。 見下面

<?php 
session_start(); 
include 'includes/header.php'; 
?> 

<html> 
    <head></head> 

... 
... 
0

與您的項目結構,你需要確保的init.php是所謂的執行順序的第一個文件,和所有其他文件,包括「頭」,應包括內部的文件。您不能在session_start()之前輸出甚至是空字符串。如果所有文件都包含在一個單獨的主文件中,比如說index.php,它應該看起來像這樣。

<?php 
     include ("init.php"); 
    ?> 
    <html> 
    <!-- The head file should come here --> 
    <?php 
     include "Oheader.php"; 
    ?>