2008-12-10 29 views
0

我有以下代碼:PHP和MySQL的搜索和傳遞變量問題

http://www.nomorepasting.com/getpaste.php?pasteid=22615

這是由this question提到的JavaScript調用:

我的問題是,我似乎並沒有被能夠通過$查詢,因爲在我自己調用此文件時看起來沒有什麼會發生。

我不確定控制信息流的最佳方式是什麼。我的邏輯好嗎?將查詢通過javascript傳遞給php文件,然後用函數返回它?

我也關心我使用$行,因爲它似乎並不需要。

回答

1

我想你要替換該(36行):

$rows = getRowsByArticleSearch($searchString, $table); 

與此:

$rows = getRowsByArticleSearch($query, $table); 

而對於安全問題,你應該做的至少是從spelley的崗位mysql_real_escape_string東西。

0

在你鏈接的代碼中,我看不到$ searchString聲明在哪裏?在上述PHP中,我看到這兩個獨立的部分:

$query =''; 
if (isset($_GET["query"])) 
$query = $_GET["query"]; 

和您正在執行後來就停機了頁面的代碼是

$table = 'Auctions'; 
$rows = getRowsByArticleSearch($searchString, $table); 

行不通的,據我可以在代碼中看到,是聲明的$ searchString。然而,更大的擔憂是,在執行它之前,您並未清理查詢字符串。爲了安全起見,我將至少取代:

$result = mysql_query("SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME 
         FROM {$table} 
         WHERE upper ARTICLE_NAME LIKE '%" . $searchString . "%'"); 

$result = mysql_query("SELECT ARTICLE_NO, USERNAME, ACCESSSTARTS, ARTICLE_NAME 
         FROM {$table} 
         WHERE upper ARTICLE_NAME LIKE '%" . mysql_real_escape_string($searchString) . "%'"); 

您也應該檢查魔術引號是否被打開,以避免重複轉義。