php和mysql搜索和传递变量问题

时间:2008-12-10 12:22:49

标签: php javascript sql ajax

我有以下代码:

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

this question中提到的javascript调用:

我的问题是我似乎无法传递$查询,因为当我单独调用此文件时似乎没有任何事情发生。

我不确定控制信息流的最佳方法是什么。我的逻辑好吗?通过javascript将查询传递给php文件,然后使用函数返回它?

我也担心我使用$ rows,因为它似乎不是必需的。

2 个答案:

答案 0 :(得分:1)

我想你要替换它(第36行):

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

用这个:

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

出于安全考虑,你应该做的最少的是来自spelley帖子的mysql_real_escape_string。

答案 1 :(得分: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) . "%'");

您还应该检查是否已启用魔术引号,以避免双重转义。