2010-05-11 47 views
0

我把這個案例變成了一個提交給自己的簡單PHP頁面。我的問題是,我提交了賽道見面結果,其中一個女孩的名字是Echo ...一個可愛的名字。如何清理PHP中包含「; echo」的字符串? (我有一個堅實的理由)

我提交的問題文本是: 撐竿跳高 - Rachel Simons,Tow,8-6; Echo Wilson,Cit,8-0;莫莉蘭德爾,拖,7-0;

所以你看一個分號後跟空格,然後回聲...

提交後,它說:到/results/test.php不支持

的最終目標是節省 POST它連同一些其他信息到一個數據庫,並有一個搜索頁面來找到它,並在屏幕上打印出完整的結果。我刪除了我所有的數據庫內容,將其歸結爲這一個錯誤。我的意思是,我可以故意拼錯她的名字,但是必須有解決辦法,對嗎?

這裏是測試PHP文件。

<html> 
<head> 
<title>title</title> 
</head> 
<body> 
<?php 
echo "<h3>Edit meet info below</h3>"; 
echo "<form action=\"test.php\" method=\"post\" id=\"submitForm\">"; 
echo "Full Results:<br/><textarea NAME=\"results\" id=\"results\" rows=\"20\" cols=\"80\" MAXLENGTH=\"8191\"></textarea><br/><br/>"; 
echo "<input type=\"submit\" name=\"submitMeet\" value=\"Submit\">"; 
echo "</form>"; 
?> 
</body> 
</html> 
+1

我喜歡跑步。 – 2010-05-11 03:50:55

回答

4

這聽起來像您有掃描請求,並拒絕那些看起來像他們可能是一個危險的一些蹩腳的安全系統(或許mod_security?)。

你將不得不問你的虛擬主機或東西,如果他們可以禁用它。沒有任何PHP函數會根據任何文本組合來任意拒絕POST請求。 (至少,不是這種情況下)

+0

呼叫良好。然後我發現這個職位: http://www.liewcf.com/archives/2008/05/how-to-disable-mod_security-in-htaccess-file/ 我打開了一個支持票與我的主機,並問他們禁用端口掃描。 SecFilterScanPOST關閉 門票關閉時,我嘗試了測試文件,它工作。 – 2010-05-14 15:02:00

0

你只需讓Echo改變她的名字......名字......姓名。

儘管如此,請查看webdestroya的建議。如果失敗了,我認爲快速和骯髒的解決方案是更改您使用的分隔符來分隔POST請求中的名稱,然後在收到分隔符後將該分隔符更改回分號。所以,你會後是這樣的:

Pole vault - Rachel Simons, Tow, 8-6||Echo Wilson, Cit, 8-0||Molly Randall, Tow, 7-0|| 

那麼做到這一點:

$data = str_replace('||', ';', $the_data_you_posted); 

如果您不想在輸入結果時手動輸入分隔符,你可以寫一個小的JavaScript來轉換自動分號,例如提交。

相關問題