189 8069 5689

thinkphp——PHP异位或加密实现自动登陆

最近做一个网站,需要实现自动登陆的功能,代码如下:

发展壮大离不开广大客户长期以来的信赖与支持,我们将始终秉承“诚信为本、服务至上”的服务理念,坚持“二合一”的优良服务模式,真诚服务每家企业,认真做好每个细节,不断完善自我,成就企业,实现共赢。行业涉及格栅板等,在成都网站建设成都营销网站建设、WAP手机网站、VI设计、软件开发等项目上具有丰富的设计经验。

 HTML代码   


        
            
                用户名/邮箱
                                 不能为空                                  允许用中英文、数字、下划线,提交后不可修改             
                             密码
                                 不能为空                 6 - 20位                                                                             两周内免登录                 忘记密码?                          

                                          联合登录                 腾讯QQ                 新浪微博                 人人网                 绑定送200积分                           

Ajax提交登陆信息,提交地址自行修改


    function subLogin(obj) {
        var username = $.trim($('#username').val());
        var pwd = $.trim($('#pwd').val());
        var remember;
        if($('#rememberme').is(":checked")){
            remember=1;
        }else{
            remember=2;
        }
        if (username == '') {
            showLoginError("请输入用户名或邮箱");
            return false;
        }
        if (pwd == '') {
            showLoginError("请输入密码");
            return false;
        }
        obj.addClass('disabled').val('登录中...');
        $.post(controller+'Ajax/checkLogin', {username: username, pwd: pwd,rememberme:remember}, function(data) {
            if (data.error != '') {
                showLoginError(data.error);
            } else {
                showSuccessTip(data.success);
                var url = data.url;
                setTimeout("goUrl('" + url + "')", 1000);
            }
            obj.removeClass('disabled').val('登录');
        }, "json")
    }
    function showLoginError(tip) {
        $("#notice_error").text(tip).show();
        $("#notice_error").fadeOut(2500);
    }

在Common/function.PHP中

/**  
 * 异位或加密字符串  
 * @param [String] $value [需要加密或解密的字符串]  
 * @param [integer] $type [0:加密 1:解密]  
 * @param [String]        [返回加密或解密的字符串]  
 */
function encryption($value,$type=0){
$key = md5(C('AUTO_LOGIN_KEY'));
//$type==1则加密cookie
if($type==1){
return str_replace('=','',base64_encode($value ^ $key));
}
//解密
$value = base64_decode($value);
return $value ^ $key;
}

PHP

     //是否要记录cookie

    if(I('rememberme')==1){

    $value = $user['id'].'|'.get_client_ip().'|'.$user['username'];

    $value = encryption($value,1);

cookie('sucai',$value,array('expire'=>time()+3600*24*7*2,'path'=>'/'));

    }

在Home/Controller/CommonController.class.php中

if(isset($_COOKIE('sucai')){
                        //解析cookie,生成session
$value = encryption(cookie('sucai'));
$value = explode('|',$value);
if($value['1']==get_client_ip()){
session('uid',$value[0]);
session('username',$value['2']);
}
}

网站名称:thinkphp——PHP异位或加密实现自动登陆
网页地址:http://gzruizhi.cn/article/gsepgg.html

联系我们

您好HELLO!
感谢您来到宜宾网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

冠赛建站工作室

宜宾冠赛网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,冠赛建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

冠赛观点

相对传统的宜宾网站建设公司而言,冠赛是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。