背景:我正在使用的網站在頂部有一個搜索欄。用戶輸入產品的部件代碼,網站返回有關該產品的信息。表單提交 - 預驗證拋出IE關閉
所以,我有一個基本的搜索欄,張貼參數從一個HTML表單到一個PHP腳本,然後在MySQL服務器上查找以獲得產品。
問題是因爲某些零件代碼有「#」字符,我必須使用Javascript來插入轉義字符,否則我只會得到PHP腳本中的部分代碼。
實施例 - 如123
我使用的形式,其被填充有文本框值的隱藏值,通過在Javascript中逃逸()函數修改123#ABC將被讀。
這是我目前的代碼,它適用於除IE以外的所有瀏覽器。
任何幫助,將不勝感激:)
<script language="jscript">
function changeTextBox()
{
hiddenSearch.value = escape(txtSearch.value);
formSearch.submit;
}
</script>
<form id="formSearch" name="Search" action="?page=search" method="post">
Search by <u>Part Code</u> or <u>Description</u>
<input id="txtSearch" type="text" size="35">
<input id="hiddenSearch" name="Search" type="hidden">
<input name="Submit" onclick='jscript:changeTextBox();' type="submit" value="Submit">
</form>
僅在JavaScript中轉義不會阻止惡意用戶。另外如果用戶按下輸入而不是點擊按鈕怎麼辦?你至少需要一個onsubmit處理程序。 –
我會嘗試像'
Andre我們還處於早期階段,該網站還沒有開通。我會記住這一點,雖然 編輯:本諾,謝謝。這是問題,它現在正在工作:) –