2014-03-29 54 views
0

我收到了PHP的警告:我收到PHP警告通知只在本地主機

"Notice: A session had already been started - ignoring session_start()". 

這種情況只有在本地主機,而不是在服務器上。

服務器和本地主機上存在相同的文件。

爲什麼會有變化的結果?

這裏是我的代碼:

<?php session_start();?> 
<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>BookMyFilms - Register</title> 
<link rel="stylesheet" type="text/css" href="css/styles.css"> 
</head> 
</html> 
<?php 
$username = $_POST ['username']; 
$_SESSION ['user'] = $username; 
require ('includes/header.php'); 
require ('includes/db.php'); 
require ('includes/common.php'); 
Register(); 
require ('includes/footer.php');?> 
+0

您的服務器可能已關閉通知。 – DCoder

+0

...或者在本地機器上運行的堆棧可能會使用['session.auto_start'](http://www.php.net/manual/en/session.configuration.php#ini)配置您的php.ini。 session.auto-start)? – Emissary

回答

3

服務器通常在「生產」環境中配置,它不會打印通知和警告。 對於另一個問題,您可能在其中一個包含另一個session_start

1

PHP的警告通知必須已關閉您的在線服務器上。嗯,你可以啓用它像

error_reporting(E_NOTICE); 

主要問題是你必須在這些文件中是具有session_start();,這就是爲什麼你得到的通知...

require ('includes/header.php'); 
require ('includes/db.php'); 
require ('includes/common.php'); 
require ('includes/footer.php');?> 

請嘗試檢查這些文件是否存在session_start();發生..如果是這樣,請將其註釋掉,因爲您已經在代碼的開始處開始了。

0

只要改變

<?php session_start();?> 

<?php @session_start();?> 

和你做..!你不會在任何服務器上得到通知。

+2

我建議找到故障而不是僅僅抑制消息更有用。 '通知'通常是關於代碼其他問題的線索。 –

+2

「la la la我聽不到你」是錯誤處理的一種不好的方法。 – DCoder