2013-02-12 52 views
0

我做了這個PHP文件,我已經上傳到我的免費主機。它工作正常。當我不提交表格時,它什麼都不顯示。 (在這裏你可以看到它:http://tuku.net63.net/test.phpPHP未定義的索引與xammp,但不與主機

<form method="post"> 
    <input name="name"></input> 
    <input type="submit"></input> 
</form> 

<?php 
    echo $_POST['name']; 
?> 

但現在我已經上傳完全相同的文件到我的服務器XAMMP,當我不提交表單,它會顯示這個錯誤:

Notice: Undefined index: name in C:\xampp\htdocs\test.php on line 7 

它與PHP設置有關嗎?我不知道?

Thanx!

+0

開頭'error_reporting(0)';或者閱讀[php.net](http://php.net)上的所有內容 – 2013-02-12 23:09:33

回答

1

您的開發服務器已關閉警告,這是非常糟糕的!

您的生產服務器已打開警告,這是可能不好。

開發中使用:error_reporting(E_ALL);以獲取所有錯誤和警告。還要確保你已經將「display_errors」設置爲true。 ini_set("display_errors", 1);

+0

我認爲你理解相反。 OP說xammp服務器顯示錯誤。 – Tchoupi 2013-02-12 23:07:19

0

如果你沒有提交任何東西,$_POST['name']是未定義的。您應該檢查它是否設置:

if (isset($_POST['name'])) { 
    echo $_POST['name']; 
} 

您的免費主機可能設置爲不顯示錯誤,這就是爲什麼你沒有看到它。

0

該通知是正確的。您尚未提交表格,並且沒有$_POST;

+0

我知道,但爲什麼它只與我的xampp服務器,而不是與主機? – Herocaine 2013-02-12 23:08:37

+0

@他們可能會關閉錯誤報告。 – 2013-02-12 23:12:44

0

@Heroking在PHP中有一個高度可定製的錯誤報告系統。使用它可以設置顯示所有錯誤,如通知,警告,錯誤,致命錯誤,啓動錯誤等...在生產服務器配置主機的配置)出於安全原因,所有類型的錯誤報告都將被關閉,因爲它可以讓公衆很容易地看到錯誤並製作代碼大綱。同時它也非常煩人地看到錯誤(也就是無格式化的純文本文本)在美麗的網頁中間...

但在一個開發服務器配置,如xamp,wamp和其他大多數錯誤報告選項將默認啓用。這有助於調試PHP代碼。是你看到錯誤的原因在您的家庭開發服務器中,但不在主機服務器上。