2009-12-30 64 views
0

我得到一個內部服務器錯誤與下面的代碼...任何建議:內部服務器錯誤命令

<form name="user" action="this.php" method="post"> 
<input type="text" name="description" id="description" value="" /> 

<input type="submit" name="" id="" value="Edit Page" />  
</form> 

還有就是頁面上沒有其他代碼,並自提交罰款,除非我把文本字段中的一個MySQL查詢,如SELECT查詢FROM d,其中1 = 1

然後我得到以下錯誤:

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, [email protected] and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.

我確實有一些的.htaccess規則怎麼回事,但我不知道怎麼會影響一個查詢,並不做任何事情或去任何地方......

+0

如何MySQL的聲明得到放入PHP頁面? – wallyk 2009-12-30 23:16:32

+0

如果我在輸入框中輸入SQL語句。我認爲這是一個服務器配置問題,但我不知道從哪裏開始尋找。 – kylex 2009-12-30 23:20:27

+0

無關(或只有輕微相關,如果mod_security的猜測是正確的,因爲我懷疑),但你需要'htmlspecialchars'你'PHP_SELF',和你一樣寫入HTML其他任何字符串的呼應。否則,你的風險破損和跨站點腳本錯誤(即使惱人的和無效的mod_security已開啓)。 – bobince 2009-12-31 01:10:53

回答

3

似乎是邪惡的mod_security 規則。你在共享主機?一般來說,你可以通過的.htaccess文件禁用所有模塊或特定的規則。

+0

你說得對,這是一個mod_security問題。只需將受影響的文件列入白名單。 – kylex 2009-12-31 15:05:14

0

看是你的web服務器的日誌文件的第一個地方。

第二個地方是How can I prevent SQL injection in PHP?,因爲我猜你只是把用戶把你手中的東西塞進SQL服務器而沒有任何消毒。

+0

我沒有提交任何東西到SQL服務器。這是奇怪的部分。在腳本中甚至沒有連接到SQL服務器。 – kylex 2009-12-31 05:53:54

-1

由於提供的信息有限,這聽起來像就是你以某種方式發送一個畸形SQL查詢,你不要再追MySQL服務器返回的錯誤。你需要看看你發送了什麼,並處理mysql錯誤。

+0

什麼都不是SQL服務器......至少不通過腳本。我展示的代碼是所有正在發送的代碼。腳本中沒有其他的東西存在。 – kylex 2009-12-31 05:49:08

0

之前執行,傾倒的$ _ POST []的內容;

var_dump($_POST); 

在發展enviorment,這是很好的使錯誤顯示:

display_errors(1); 

或者在php.ini:

display_errors = On;