【问题标题】:php and mysql searching and passing variables problemphp和mysql搜索和传递变量问题
【发布时间】:2010-09-26 05:36:31
【问题描述】:

我有以下代码:

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

this question中提到的javascript调用:

我的问题是我似乎无法传递 $query,因为当我自己调用此文件时似乎没有任何反应。

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

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

【问题讨论】:

    标签: php javascript sql ajax


    【解决方案1】:

    我想你想替换这个(第 36 行):

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

    用这个:

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

    出于安全考虑,您至少应该做的是来自 spelley 帖子的 mysql_real_escape_string 内容。

    【讨论】:

      【解决方案2】:

      在您链接到的代码中,我看不到 $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) . "%'");
      

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-05
        • 1970-01-01
        相关资源
        最近更新 更多