url传送变量出错url传送变量 ?a=(ad_title LIKE '%card%' OR ad_description LIKE '%card%'),目标页面接收到的却是:(ad_title LIKE '�rd%' OR ad_description LIKE '�rd%') 或者传送变量 ?a=(ad_title LIKE '%tool%' OR ad_description LIKE '%tool%') ,目标页面接收到的却是:(ad_title LIKE '�ol%' OR ad_description LIKE '�ol%') 。也就是无法接收到第一个%及它后边两个字母共三个字节。请教解决办法。

解决方案 »

  1.   

    传送前先用urlencode将url变量编码
      

  2.   

    % 是url参数中的特殊字符,要做 url 转义处理
    如果参数串是 php 生成的,可用 urlencode 做编码处理
    如果参数串是纯手写的,应将 % 写作 %25

    a=(ad_title LIKE '%tool%' OR ad_description LIKE '%tool%')
    应为
    a=(ad_title LIKE '%25tool%25' OR ad_description LIKE '%25tool%25')另外说一句,你这样传递 sql 指令,实在是太危险了!
      

  3.   

    你直接传个card这个值过去,然后再做SQL处理不是更好吗
      

  4.   


    再请教:
    $a=(ad_title LIKE '%card%' OR ad_description LIKE '%card%') AND ad_category=17;
    //以下恳求代码能分别取得 card 和 17 这两个值。
    ... 
      

  5.   

    php.php?card=card&ad_category=17$card = $_GET['card'];
    $ad_category= $_GET['ad_category'];
      

  6.   


    card 和 17 这两个值都不是固定的,每次要从变量 $a 中提取。4楼的 $a=(ad_title LIKE '%card%' OR ad_description LIKE '%card%') AND ad_category=17 ,这是上一页搜索商品的查询条件,想在原来的搜索结果加多一个条件进一步查询,有什么其它办法可以将原来的查询条件和新加入的条件一齐传回搜索页吗?