chat_list.php?sql=select *  from yw_chat where jqmc like '%7099%'  order by id desc用get接收怎么变成select * from yw_chat where jqmc like 'p99%' order by id desc
echo $sql=str_replace("\\","",$_GET["sql"]); 
69为什么要变成p呢?  如何修改此问题?

解决方案 »

  1.   

    把参数进行转义htmlspecialchars,用到的时候再转回来htmlspecialchars_decode
      

  2.   

    用url传sql语句……
    这个……
      

  3.   

    base64_encode
    base64_decode
    用其编码,然后url传送,然后再解码.不过传sql用get方式不太好.
      

  4.   

    用url传sql语句…… 
    这个……
      

  5.   

    1.url傳sql是很10000%可以被注入的
    2.即使用了,你最好經過編碼解碼base64_encode,base64_decode 
      

  6.   

    呵呵,是在局域网内使用,所以写的大胆了点是不是应该用一个个参数进行传递啊 用& 连接  这样是不是就安全些了呢?
      

  7.   

    为什么非得用Get不用POST传递呢
      

  8.   

    urlencode
    接收直接get即可,用其它的还要解码
      

  9.   

    70是字母p的ascii码的16进制,%70出现在url中就是字母p
    你就传关键字就行了,到程序中再拼接成sql语句,chat_list.php?jqmc=7099。
    哪有直接传sql语句的
      

  10.   

    不能这样子了,那怕是局域网,那句名言咋说来滴"千万不要相信用户..."chat_list.php?sql=select *  from yw_chat where jqmc like '%7099%'  order by id desc你可以把它分解为:在你的接收页写$string = addslashes($_GET["sql"]); 
    sql="select *  from yw_chat where jqmc like '%$string%'  order by id desc"
    url只提交那个关键词过来就行了
      

  11.   

    lz好胆大,我写我公司内部系统,就公司几个人用,我还每个page都设置执行条件,生怕谁直接执行中间某个网页,出了乱子。lz要想到万一阿,或者可能有人完全无意的不小心动了下地址栏,那也会出事的哦。
      

  12.   

    把整个$s=$sql
    把$s 放在url中试试