2014-03-06 82 views
0

這是一個腳本上週工作但不是現在的情況。我只能認爲在Web主機上安裝了一個新的(er)版本的PHP,該版本有一個錯誤。如果這是我的錯,我看不出如何。那麼,這是一個PHP錯誤,一個GoDaddy問題,或者是什麼?確實會忽略註釋字符?

下面只是整個腳本的一部分,但我已經將它縮減爲這個名爲'a.php'的小失敗片段。對於那些失敗的,點擊提交按鈕後,IE會說'這個頁面不能顯示';其他瀏覽器也顯示失敗。 PHP錯誤日誌文件中沒有錯誤。看起來評論字符被忽略。 'allow_url_fopen'爲true,但聲明不應該是運行腳本的一部分。這是在GoDaddy上的多個共享Linux主機上使用PHP v5.3.24和v5.4.19。我在本地WAMP安裝(使用PHP v5.6.0或v5.4.23)上嘗試了這些示例,它們都可以正常工作。

請注意,我不得不在下面的示例中將「http」變成「httpX」以獲取此發佈。

在完整的腳本中,我使用了最後一種方法讓它再次工作,即將URL字符串移動到變量中,並將該變量用作函數的參數。

這三個失敗:

// commented line at end 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//file_get_contents('httpX://abc.com'); 

// commented line at beginning 
//file_get_contents('httpX://abc.com'); 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 

// use other commenting characters 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
/*file_get_contents('httpX://abc.com');*/ 

這四個工作按預期:

// remove offending line 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 

// change function name 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//zile_get_contents('httpX://abc.com'); 

// change from URL to file 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//file_get_contents(b.txt); 

// set var to URL and use var as argument 
print "<form action=\"a.php\" method=\"POST\">"; 
print "<input type=\"submit\" name=\"submit\" /></p>"; 
print "</form>"; 
//$u = 'httpX://abc.com'; 
//file_get_contents($u); 
+0

什麼?你真正的問題是什麼? – ElefantPhace

+0

@ElefantPhace他有一個上週工作的腳本,現在停止工作,他問腳本中是否有什麼不好的東西,他沒有看到,他假設評論字符「//」被php忽略 – CodeBird

+0

他們被忽略,他們是評論。他所擁有的只有三個相同的空格。你的預期產出是多少? – ElefantPhace

回答

0

好吧,你的更新是有益的:

正如我所說IE顯示「此頁面可以不會顯示';

FF顯示'連接已重置 - 與服務器的連接已重置,而頁面正在加載時爲 ';

Chrome顯示'沒有收到數據';

Safari顯示空白屏幕。

您的網絡服務器未配置或工作正常。

首先,創建一個簡單的html頁面,不帶php,並嘗試查看是否可以查看該頁面。如果沒有看到任何.htaccess文件,可能只是暫時刪除它。或者讓GoDaddy幫助你。

下面是一個示例頁面。說它TEST.HTM並把它放在你的服務器的根目錄:

Hello world. 

如果你可以看到一個簡單的HTML頁面,那麼它是一個PHP的問題。嘗試一個非常簡單的PHP頁面。說它test.php的並使它這樣的:

<?php echo "Hi from php";?> 

!請確保您的編輯器編碼沒有設置爲使用'BOM'。現在將其設置爲簡單的ANSI/ASCII。

我知道這可能令人沮喪,但你會得到這個固定的,然後在自己頭腦簡單的情況下改變自己。

+0

這是一個相當大的網站,有很多頁面,大量的MySQL相互作用,大量的JS等,一切工作正常,除了這一個腳本,只有上週開始barfing。正如我所說的,現在通過將func調用中的字符串中的URL arg移動到一個變量中,並將該變量用作file_get_contents調用的arg,現在確實有效。我真的很期待看到其他GoDaddy用戶注意到了這一點,或者能夠複製它。這是我見過的最奇怪的事情。我同意你的看法,即有一個web服務器的問題,但它似乎與PHP解釋器一樣。謝謝。 – arrowd

+0

您是否在該頁面檢查BOM?我的意思是,如果只有一頁,那麼這個頁面非常重要,而實際上並不是GoDaddy。我的2c。 –

1

這是一個Godaddy託管的主要問題。最近,我的一些PHP腳本產生這種不適當的服務器響應。我發出了一張票,當然一個響應被延遲了(不僅僅是服務器)。他們通常的阻礙也是預料之中的。