urlencode相关函数http://cn2.php.net/manual/en/function.urlencode.php

解决方案 »

  1.   

    不行呀.  urlencode对点号 是不用转换的.   是参数名含有点号.  不是参数内容含有点号 .
      

  2.   

    你把那几个英语句号“.”改为 %2E ,这样就可以了,URL编码掉“.”,就可以正常传输参数名字了
      

  3.   

    是这样改吗?
    但是还是不行.
    fputs($fp, "up%2Ename=ok123f&up%2Epassword=1234&up%2Elogin=Submit\r\n");  
      

  4.   

    表单的name是不应该带点的,
    你试一下就知道了, 
    如果用name="test.a"
    php接受后会在$_POST['test_a']里, 而不是$_POST['test.a']
      

  5.   

    但是对方网站的表单就是要带点.  导致无法传输参数名.  请问有解决方法吗
    就算改为这样呀无法传参fputs($fp, "up_name=ok123f&up_password=1234&up_login=Submit\r\n");  
      

  6.   

    自己用IE登陆他的网站是正常的. 但是用PHP模拟登陆就不行了.   
      

  7.   

    你的头信息写的正确么?POST数据这句Content-Type: application/x-www-form-urlencoded
    是必须的,不然数据传不出去
      

  8.   

    服务端确实如6楼兄弟所说,点变成了下划线。
    而客户端的提交,我特地抓了一个包,呼呼,数据是
    up.name=test&up.phone=123456&button=%E6%8F%90%E4%BA%A4
    也就是变量名并没有修改,而只是rawurlencode了值,这里的button的值是“提交”
      

  9.   

    头信息 都写正确. 其他网站我都会用PHP进行模拟登陆.  但是这个参数名带有英语句号的 . 就登陆不了.