这里我们具体讲讲如何使用snoopy来模拟登陆。
    模拟登陆可以用curl或者socket来实现,当curl需要服务器相应的启用curl module,自己socket实现相对比较麻烦,使用snoopy就简单了很多啦。

    在这里,我们使用喜悦国际村做为例子。(^_^,纯属研究)

    首先,我们要获取到登陆需要发送什么字段,目标地址是什么。这里我们使用snoopy的fetchform来实现。


1使用snoopy提交数据实现登陆<? 
2使用snoopy提交数据实现登陆include "Snoopy.class.php"
3使用snoopy提交数据实现登陆$snoopy = new Snoopy; 
4使用snoopy提交数据实现登陆$snoopy->fetchform("http://www.phpx.com/happy/logging.php?action=login"); 
5使用snoopy提交数据实现登陆print $snoopy->results; 
6使用snoopy提交数据实现登陆?> 
7使用snoopy提交数据实现登陆

当然你也可以直接查看http://www.phpx.com/happy/logging.php?action=login的源代码来实现,不过这样更加方便把。这里,我们获取到目标和提交的数据,下一步就可以实现模拟登陆了。代码如下:
 1使用snoopy提交数据实现登陆<? 
 2使用snoopy提交数据实现登陆include "Snoopy.class.php"
 3使用snoopy提交数据实现登陆$snoopy = new Snoopy; 
 4使用snoopy提交数据实现登陆$submit_url = "http://www.phpx.com/happy/logging.php?action=login"
 5使用snoopy提交数据实现登陆     
 6使用snoopy提交数据实现登陆    $submit_vars["loginmode"= "normal"
 7使用snoopy提交数据实现登陆    $submit_vars["styleid"= "1"
 8使用snoopy提交数据实现登陆    $submit_vars["cookietime"= "315360000"
 9使用snoopy提交数据实现登陆    $submit_vars["loginfield"= "username"
10使用snoopy提交数据实现登陆    $submit_vars["username"= "********"//你的用户名 
11使用snoopy提交数据实现登陆    $submit_vars["password"= "*******";  //你的密码 
12使用snoopy提交数据实现登陆    $submit_vars["questionid"= "0"
13使用snoopy提交数据实现登陆    $submit_vars["answer"= "";     
14使用snoopy提交数据实现登陆    $submit_vars["loginsubmit"= "提 &nbsp; 交";     
15使用snoopy提交数据实现登陆    $snoopy->submit($submit_url,$submit_vars); 
16使用snoopy提交数据实现登陆    print $snoopy->results; 
17使用snoopy提交数据实现登陆
18使用snoopy提交数据实现登陆?> 
19使用snoopy提交数据实现登陆

^_^,是不是显示你已经登陆了?使用snoopy就是这么简单!

 

fsockopen和curl都可以做php自动提交表单


 1使用snoopy提交数据实现登陆<?php 
 2使用snoopy提交数据实现登陆/*-----------------------------------------------------------
 3使用snoopy提交数据实现登陆*功能:使用PHP socke 向指定页面提交数据
 4使用snoopy提交数据实现登陆*
 5使用snoopy提交数据实现登陆*作者:Honghe.c
 6使用snoopy提交数据实现登陆*
 7使用snoopy提交数据实现登陆*说明:post($url, $data)
 8使用snoopy提交数据实现登陆*
 9使用snoopy提交数据实现登陆*       $url     = 'http://www.xxx.com:8080/login.php';
10使用snoopy提交数据实现登陆*       $data[user] = 'hong';
11使用snoopy提交数据实现登陆*       $data[pass] = 'xowldo';
12使用snoopy提交数据实现登陆*       echo post($url, $data);
13使用snoopy提交数据实现登陆*-----------------------------------------------------------*/
14使用snoopy提交数据实现登陆
15使用snoopy提交数据实现登陆function post($url, $data) {
16使用snoopy提交数据实现登陆    
17使用snoopy提交数据实现登陆    $url = parse_url($url);
18使用snoopy提交数据实现登陆     if (!$urlreturn "couldn't parse url";
19使用snoopy提交数据实现登陆     if (!isset($url['port'])) { $url['port'= ""; }
20使用snoopy提交数据实现登陆     if (!isset($url['query'])) { $url['query'= ""; }
21使用snoopy提交数据实现登陆    
22使用snoopy提交数据实现登陆    $encoded = "";
23使用snoopy提交数据实现登陆    
24使用snoopy提交数据实现登陆     while (list($k,$v= each($data)) {
25使用snoopy提交数据实现登陆        $encoded .= ($encoded ? "&" : "");
26使用snoopy提交数据实现登陆        $encoded .= rawurlencode($k)."=".rawurlencode($v);
27使用snoopy提交数据实现登陆     }
28使用snoopy提交数据实现登陆    
29使用snoopy提交数据实现登陆    $fp = fsockopen($url['host'], $url['port'? $url['port': 80);
30使用snoopy提交数据实现登陆     if (!$fpreturn "Failed to open socket to $url[host]";
31使用snoopy提交数据实现登陆    
32使用snoopy提交数据实现登陆    fputs($fp, sprintf("POST %s%s%s HTTP/1.0n", $url['path'], $url['query'? "?" : "", $url['query']));
33使用snoopy提交数据实现登陆    fputs($fp, "Host: $url[host]n");
34使用snoopy提交数据实现登陆    fputs($fp, "Content-type: application/x-www-form-urlencodedn");
35使用snoopy提交数据实现登陆    fputs($fp, "Content-length: " . strlen($encoded. "n");
36使用snoopy提交数据实现登陆    fputs($fp, "Connection: closenn");
37使用snoopy提交数据实现登陆    
38使用snoopy提交数据实现登陆    fputs($fp, "$encodedn");
39使用snoopy提交数据实现登陆    
40使用snoopy提交数据实现登陆    $line = fgets($fp,1024);
41使用snoopy提交数据实现登陆     if (!eregi("^HTTP/1.. 200", $line)) return;
42使用snoopy提交数据实现登陆    
43使用snoopy提交数据实现登陆    $results = ""$inheader = 1;
44使用snoopy提交数据实现登陆     while(!feof($fp)) {
45使用snoopy提交数据实现登陆        $line = fgets($fp,1024);
46使用snoopy提交数据实现登陆         if ($inheader && ($line == "n" || $line == "rn")) {
47使用snoopy提交数据实现登陆        $inheader = 0;
48使用snoopy提交数据实现登陆     }
49使用snoopy提交数据实现登陆     elseif (!$inheader) {
50使用snoopy提交数据实现登陆        $results .= $line;
51使用snoopy提交数据实现登陆     }
52使用snoopy提交数据实现登陆     }
53使用snoopy提交数据实现登陆    fclose($fp);
54使用snoopy提交数据实现登陆    
55使用snoopy提交数据实现登陆     return $results;
56使用snoopy提交数据实现登陆}
57使用snoopy提交数据实现登陆
58使用snoopy提交数据实现登陆/*
59使用snoopy提交数据实现登陆$url = 'http://video.xxx.com:80/game_vm.php';
60使用snoopy提交数据实现登陆$data['gid'] = '1';
61使用snoopy提交数据实现登陆echo post($url, $data);
62使用snoopy提交数据实现登陆*/
63使用snoopy提交数据实现登陆
64使用snoopy提交数据实现登陆?>
65使用snoopy提交数据实现登陆
66使用snoopy提交数据实现登陆Curl 
67使用snoopy提交数据实现登陆
68使用snoopy提交数据实现登陆php Code: 
69使用snoopy提交数据实现登陆<? 
70使用snoopy提交数据实现登陆   $url = 'http://localhost/curl/result.php'
71使用snoopy提交数据实现登陆   $params = "param=123&param2=333"//What will be posted 
72使用snoopy提交数据实现登陆   $user_agent = "Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)"
73使用snoopy提交数据实现登陆   $ch = curl_init(); 
74使用snoopy提交数据实现登陆   curl_setopt($ch, CURLOPT_POST,1); 
75使用snoopy提交数据实现登陆   curl_setopt($ch, CURLOPT_POSTFIELDS,$params); 
76使用snoopy提交数据实现登陆   curl_setopt($ch, CURLOPT_URL,$url); 
77使用snoopy提交数据实现登陆   curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); 
78使用snoopy提交数据实现登陆   curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
79使用snoopy提交数据实现登陆   $result=curl_exec ($ch); //execut 
80使用snoopy提交数据实现登陆   curl_close ($ch); 
81使用snoopy提交数据实现登陆   echo "Results: <br>".$result
82使用snoopy提交数据实现登陆?> 
83使用snoopy提交数据实现登陆
84使用snoopy提交数据实现登陆result.php (just for test) 
85使用snoopy提交数据实现登陆<? 
86使用snoopy提交数据实现登陆print_r($_POST); 
87使用snoopy提交数据实现登陆?> 
88使用snoopy提交数据实现登陆
89使用snoopy提交数据实现登陆

PS:1.You can download Curl library in http://pear.php.net
   2.You can open the "php.ini" and search "extension=php_curl.dll".Then delete semicolon at this line.

 

使用snoopy提交数据实现登陆

原文地址:http://www.phpobject.net/blog/read.php/91.htm
下载地址:使用snoopy提交数据实现登陆Snoopy 1.2.3
    首先,我们要获取到登陆需要发送什么字段,目标地址是什么。这里我们使用snoopy的fetchform来实现。


1使用snoopy提交数据实现登陆<? 
2使用snoopy提交数据实现登陆include "Snoopy.class.php"
3使用snoopy提交数据实现登陆$snoopy = new Snoopy; 
4使用snoopy提交数据实现登陆$snoopy->fetchform("http://www.phpx.com/happy/logging.php?action=login"); 
5使用snoopy提交数据实现登陆print $snoopy->results; 
6使用snoopy提交数据实现登陆?> 
7使用snoopy提交数据实现登陆

当然你也可以直接查看http://www.phpx.com/happy/logging.php?action=login的源代码来实现,不过这样更加方便把。这里,我们获取到目标和提交的数据,下一步就可以实现模拟登陆了。代码如下:
 1使用snoopy提交数据实现登陆<? 
 2使用snoopy提交数据实现登陆include "Snoopy.class.php"
 3使用snoopy提交数据实现登陆$snoopy = new Snoopy; 
 4使用snoopy提交数据实现登陆$submit_url = "http://www.phpx.com/happy/logging.php?action=login"
 5使用snoopy提交数据实现登陆     
 6使用snoopy提交数据实现登陆    $submit_vars["loginmode"= "normal"
 7使用snoopy提交数据实现登陆    $submit_vars["styleid"= "1"
 8使用snoopy提交数据实现登陆    $submit_vars["cookietime"= "315360000"
 9使用snoopy提交数据实现登陆    $submit_vars["loginfield"= "username"
10使用snoopy提交数据实现登陆    $submit_vars["username"= "********"//你的用户名 
11使用snoopy提交数据实现登陆    $submit_vars["password"= "*******";  //你的密码 
12使用snoopy提交数据实现登陆    $submit_vars["questionid"= "0"
13使用snoopy提交数据实现登陆    $submit_vars["answer"= "";     
14使用snoopy提交数据实现登陆    $submit_vars["loginsubmit"= "提 &nbsp; 交";     
15使用snoopy提交数据实现登陆    $snoopy->submit($submit_url,$submit_vars); 
16使用snoopy提交数据实现登陆     print $snoopy->results; 
17使用snoopy提交数据实现登陆
18使用snoopy提交数据实现登陆?> 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-12-15
  • 2022-12-23
  • 2022-01-25
  • 2022-12-23
  • 2022-01-09
  • 2021-11-25
猜你喜欢
  • 2021-04-06
  • 2022-12-23
  • 2021-11-27
  • 2022-12-23
  • 2022-01-29
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案