php模拟登陆系统,并执行脚本

2016年9月25日 57,440 浏览数 没有评论

  php中的curl非常好用,可它来模拟登陆系统,并执行脚本,非常简便。下面列出自己常用的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
/**
 *该需要编辑cron并让其每隔5分钟自动运行一次
 * 5 * * * * /usr/bin/curl http://localhost/plugin/updata.php?id=1
 *其中id=?动态项目的ID号
 */
$id = (isset($_GET['id']))?(int)$_GET['id']:'';
if (empty($id))exit();
//登陆认证
$url = "http://localhost/login.php?work=checklogin";
$post_data = array('name'=>'username','pwd'=>'password');
$cookie_jar = tempnam('./','cookie');//存放COOKIE的文件
 
// 登录并获取cookie信息
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_REFERER, '');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//设为1则不直接显示获取到的内容
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post_data));  
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_jar);//保存cookie
$output = curl_exec($ch); 
curl_close($ch);
 
//执行脚本运行
$url = "http://localhost/update_d.php?work=create&parent={$id}";
$ch=curl_init();  
curl_setopt($ch, CURLOPT_URL, $url);  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //设0是为了方便调试
curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_jar);//代入获取到的cookie
$data=curl_exec($ch);
curl_close($ch);
@unlink($cookie_jar);//删除cookie文件
?>

  将上述代码保存为update.php文件,放在自己的网站空间里。
  再将“5 * * * * /usr/bin/curl http://localhost/plugin/updata.php?id=1”代码保存为root文件,并存放在服务器/var/spool/cron/中,让cron每隔5分钟自动执行一次即可!

分类: 伪编程 标签: ,