PHP代码
  • //note public 外部接口 登陆接
  • function onlogin($type=’myself’) {
  • $this->init_input();
  • $isuid = $this->input(‘isuid’);
  • $username = $this->input(‘username’);
  • $password = $this->input(‘password’);
  • $checkques = $this->input(‘checkques’);
  • $questionid = $this->input(‘questionid’);
  • $answer = $this->input(‘answer’);
  • if($isuid) {
  • $user = $_ENV['user']->get_user_by_uid($username);
  • } else {
  • $user = $_ENV['user']->get_user_by_username($username);
  • }
  • $passwordmd5 = preg_match(‘/^\w{32}$/’, $password) ? $password : md5($password);
  • $type=’myself’;
  • if($type==’myself’)
  • {
  • echo ’$password:’.$password.’<br>’;
  • $testmd5 = md5(‘test’);//假设数据库中保持的所有的密码为test
  • //          print_r($passwordmd5);
  • //          print_r($user);
  • //note 用户名不存在
  • if(emptyempty($user)) {
  • $status = -1;
  • } elseif($user['password'] != $passwordmd5) {
  • $status = -2;
  • } elseif($checkques && $user['secques'] != ” && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {
  • $status = -3;
  • } else {
  • $status = $user['uid'];
  • }
  • //          echo ’<br>$statusz:’.$status.’<br>’;
  • //          die();
  • }else{
  • if(emptyempty($user)) {
  • $status = -1;
  • } elseif($user['password'] != md5($passwordmd5.$user['salt'])) {
  • $status = -2;
  • } elseif($checkques && $user['secques'] != ” && $user['secques'] != $_ENV['user']->quescrypt($questionid, $answer)) {
  • $status = -3;
  • } else {
  • $status = $user['uid'];
  • }
  • }
  • $merge = $status != -1 && !$isuid && $_ENV['user']->check_mergeuser($username) ? 1 : 0;
  • return array($status, $user['username'], $password, $user['email'], $merge);
  • }

至此,我们可以更改uchome默认的认证方式了,如果这里更改了,以后相关的也需要作出更改,这个就留下大家自己去跟踪调试了.

tips:

uchome_ROOT/uc_client/model/user.php下还有一个check_login(),这个函数暂时没有找到调用的地方.

PHP代码
  • function check_login($username, $password, &$user) {
  • $user = $this->get_user_by_username($username);
  • if(empty($user['username'])) {
  • return -1;
  • } elseif($user['password'] != md5(md5($password).$user['salt'])) {
  • return -2;
  • }
  • return $user['uid'];
  • }

eclipsePDT还是不错的,可以试试这个IDE.

uchome登陆机制分析(三)相关推荐

  1. 标准linux休眠和唤醒机制分析

    标准linux休眠和唤醒机制分析 标准linux休眠和唤醒机制分析(一) 说明: 1. Based on linux2.6.32, only for mem(SDR) 2. 有兴趣请先参考阅读:电源管 ...

  2. libpcap捕包机制分析(三)

    目前,在linux操作系统下的网络数据包捕获系统普遍是建立在libpcap捕包平台上的,libpcap的英文意思是Library of Packet Capture,即数据包捕获函数库.该库提供的C函 ...

  3. Unity_游戏核心机制分析

    王者荣耀游戏核心机制分析 一.这款游戏是什么 分析一个游戏的核心机制,首先我们得知道这款游戏是什么,这是从百度百科上搜索得到的关于这款游戏的资料:<王者荣耀>是由腾讯游戏天美工作室群开发并 ...

  4. Google Test(GTest)使用方法和源码解析——结果统计机制分析

    在分析源码之前,我们先看一个例子.以<Google Test(GTest)使用方法和源码解析--概况 >一文中最后一个实例代码为基准,修改最后一个"局部测试"结果为错误 ...

  5. Linux cgroup机制分析之cpuset subsystem

    ------------------------------------------ 本文系本站原创,欢迎转载! 转载请注明出处:http://ericxiao.cublog.cn/ -------- ...

  6. 【Binder 机制】Native 层 Binder 机制分析 ( binder_loop | svcmgr_handler | binder.c | binder_parse )

    文章目录 前言 一.binder_loop 方法调用 二.binder_loop 方法参数 svcmgr_handler 三.binder_loop 方法 四.binder_parse 方法 前言 在 ...

  7. JDK源码分析——Java的SPI机制分析与实战

    重点提示:在我博客中的所有的源码分析的实例,我都将会放到github上,感兴趣的朋友可以下载下来调试运行,我相信还是可以有所收获的.我的目的是让所有读到我博客的朋友都可以了解到有价值的东西,学习到ja ...

  8. 浅析phpwind9.0之登陆机制

    由于工作的需要,所以开始分析phpwind9.0论坛的部分功能的处理机制,这一节来分析登陆机制. 首先当用户点击进入登陆页面后:(这里不讨论快速登陆和直接在页头登陆的情况,原理基本一致) 进入该类调用 ...

  9. ida和idr机制分析(盘符分配机制)

    内核ida和idr机制分析(盘符分配机制) ida和idr的机制在我个人看来,是内核管理整数资源的一种方法.在内核中,许多地方都用到了该结构(例如class的id,disk的id),更直观的说,硬盘的 ...

  10. 数仓集群管理:单节点故障RTO机制分析

    摘要:大规模分布式系统中的故障无法避免.发生单点故障时,集群状态和业务是如何恢复的? 本文分享自华为云社区<GaussDB (DWS) 集群管理系列:单节点故障RTO机制分析(集群状态恢复篇)& ...

最新文章

  1. 【渗透测试学习平台】 web for pentester -1.介绍与安装
  2. centos7安装vsftpd
  3. 跟各种诡异 Bug 打交道 13 年后的总结
  4. php addslashes 数组,用递归addslashes函数转义数组
  5. python【蓝桥杯vip练习题库】BASIC-22(字符串 递归)
  6. 【Leetcode】103. 二叉树的锯齿形层次遍历
  7. ASP.NET Core Razor页面 vs MVC
  8. 将JSON功能添加到您的GWT应用程序中
  9. c语言中if和goto的用法,C语言中if和goto的用法.doc
  10. android网页省略分页器,Android轻量级网页风格分页器
  11. 第四版源码技术导航网自适应
  12. 机器学习岗面试准备提纲笔记
  13. android中动态壁纸下载,手机动态桌面壁纸(Video live wallpaper)
  14. 短视频去水印威信小程序源码下载,内附去水印解析接口
  15. Python通过IMAP实现邮箱客户端
  16. 我想参加计算机俱乐部用英文翻译,加入音乐俱乐部的英文怎么写_我参加音乐俱乐部已经两年了。用英语咋说...
  17. 惠普CEO李艾科的“金刚钻儿”
  18. hyperv中的ubuntu虚拟机双网卡设置
  19. 产品发布 | 全程托管、化繁为简,京东云上线API网关服务
  20. Centos删除乱码文件或文件夹

热门文章

  1. 概要设计的必要性及写法
  2. 如何将网络监控摄像头中的网络流 RTSP 转换成 M3U8 流并嵌入微信公众号
  3. 解决 1080端口已被占用
  4. python脚本-自动检测Base16、32、64、85系列编码、多层解码(新增base91解码)
  5. 调用微软小冰API,实现批量人脸颜值打分
  6. 【windows10】CMD命令行隐藏窗口运行
  7. 计算机攻击方式有哪些,常用的dos攻击方式是什么
  8. H264/H265编码视频流媒体播放器EasyWasmPlayer.js控制台循环报错Unsupported排查
  9. RapidShare 真实链接抓取助手
  10. matlab竞赛论文模板,数学建模竞赛论文模板.doc