刚学到curl,遇到几个难点.有时照着教程也不能如其般完美实现.1.curl_setopt对顺序有没有要求呢?是否可随意位置(我做的是模拟登陆,自己试过顺序,页面但是提示成功,但因程序貌似哪里不对,总是实现错误跳转--跳转到localhost/index.php,所以也不知道是不是真的)curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_field);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);
//curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie);
curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");
curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
第2个问题,在POST字段时是否只要取得用户名+密码就可以,还是要取得所有的name 又或是有值的?第三个,tempnam()函数怎么样指定目录,我这里怎么写都是指向windows/temp里,第4个,也是上面有提到的,执行到是执行了,有一个成功登陆的提示页面,但是页面很短暂,半秒就跳转到到了localhost/index.php去了?是哪里代码书写不对吗?
问题4的代码如下:$cookie=tempnam(".\temp","cookie");
$post_field="step=2&pwuser=a*c&cktime=31536000&pwpwd=9876**321&lgt=0";
//用户名密码已做改动
$url="http://bbs.php100.com/login.php";$ch=curl_init($url);
curl_setopt($ch,CURLOPT_HEADER,0);
curl_setopt($ch,CURLOPT_POST,1); 
curl_setopt($ch,CURLOPT_POSTFIELDS,$post_field);
curl_setopt($ch,CURLOPT_COOKIEJAR,$cookie);
//curl_setopt($ch,CURLOPT_COOKIEFILE,$cookie);curl_setopt($ch, CURLOPT_USERAGENT,"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");curl_setopt($ch,CURLOPT_RETURNTRANSFER,0);
curl_exec($ch);
curl_close($ch);

解决方案 »

  1.   

    第2个问题,在POST字段时是否只要取得用户名+密码就可以,还是要取得所有的name 又或是有值的?
    -----这个应该是看你要curl网页的需要那些变量的值来定了第三个,tempnam()函数怎么样指定目录,我这里怎么写都是指向windows/temp里,
    -----这个好像没法指定吧,这函数就表示服务器指定的临时目录,一般就是windows/temp,除非你在服务器里设置另外的系统临时目录
      

  2.   

    你可以查看页面的源码,或者递交表单的时候进行跟踪一下,看看都传了什么值,无非都是些input标签里面的值,既然已经显示成功就说明传的值应该是对的,貌似错误不出现在这里。