当前位置: 代码迷 >> PHP >> php用账号密码模拟登陆解决办法
  详细解决方案

php用账号密码模拟登陆解决办法

热度:10   发布时间:2016-04-28 18:24:54.0
php用账号密码模拟登陆
http://112.78.104.13


账号:zm1000,密码a123456,我想用php模拟登陆,但是总是不行,是不是提交方式不对?求大神解答!

或者提取出cookie来也行,但是好像又不支持cookie
------解决思路----------------------
1、http://112.78.104.13 是框架页。含有公共变量和函数
2、含登录框的框架是 http://112.78.104.13/app/member
3、表单目标页是 http://112.78.104.13/app/member/login.php
4、登录后返回
<script>
top.uid = '360eae3m12904263l134939190';
top.langx = 'zh-tw';
top.liveid = 'cbcfc6cdcec29bcdccc9cd'
top.casino = 'SI2';
top.hot_game = '';
top.hasLogin = 'login';
</script>
<script>window.location.href = 'http://112.78.104.13/app/member/FT_index.php?mtype=3&uid=360eae3m12904263l134939190&langx=zh-tw';</script>
仅 php 只能做到这里,虽然可析出跳转的目标页,但数据是由 js 产生的。只能得到页面框架

参考代码
$url = 'http://112.78.104.13/app/member';
$url1 = 'http://112.78.104.13/app/member/login.php';
$d = array('username' => 'zm1000', 'passwd' => 'a123456');

//echo file_get_contents($url);
//print_r(get_headers($url));

echo postdata($url1, $d);

function postdata($url, $data){
    $opts = array(
        'http' => array(
            'method' => 'POST',
            'header' => 'content-type:application/x-www-form-urlencoded',
            'user_agent' => $_SERVER['HTTP_USER_AGENT'],
            'content' => http_build_query($data)
        )    
    );
    $context = stream_context_create($opts);
    $result = file_get_contents($url, false, $context);
    return $result;
}


只为展示使用 file_get _contents 模拟提交
  相关解决方案