仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1985|回复: 19
打印 上一主题 下一主题

[学习教程] PHP教程之修正discuz兼容本人开辟的通行证

[复制链接]
老尸 该用户已被删除
跳转到指定楼层
#
发表于 2015-2-3 23:51:45 | 只看该作者 回帖奖励 |正序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。修正discuz,uchome,ucenter兼容本人开辟的通行证 比来稍有接触,修正个中的局部代码,就奉献个中的关头局部吧。   修正discuz,uchome,ucenter兼容本人开辟的通行证
比来稍有接触,修正个中的局部代码,就奉献个中的关头局部吧。
今朝discuz的会员注册是在discuz本人的系统中完成,然后post(或mysql直接操作,此处以post代称)到ucenter的数据库,个中会员暗码是md5(md5(真实暗码)+初次随机字符sult),memberid由ucenter发生。然后失掉改值,保留在discuz。
假如是本人已有通行证体系,发生id,保留暗码这局部就在本人的体系完成,然后送回离开ucenter,然后保留到dizcuz。
在uc_center/client.php中到场代码

//cjjer
function uc_user_registerCjjer($uid,$username, $password, $email, $questionid = '', $answer = '') {
     return call_user_func(UC_API_FUNC, 'user', 'register', array('uid'=>$uid,'username'=>$username, 'password'=>$password, 'email'=>$email, 'questionid'=>$questionid, 'answer'=>$answer));
}
function uc_user_updateCjjer($uid,$username, $password, $email, $questionid = '', $answer = '') {
     return call_user_func(UC_API_FUNC, 'user', 'myupdate', array('uid'=>$uid,'username'=>$username, 'password'=>$password, 'email'=>$email, 'questionid'=>$questionid, 'answer'=>$answer));
}

注册的时分就用uc_user_registerCjjer。
在contol/user.php到场代码:
     //    rewrite by cjjer
     function onregister() {
         $this->init_input();
         $username = $this->input('username');
         $myuserid = intval($this->input('uid'));
         $password =  $this->input('password');
         $email = $this->input('email');
         $questionid = $this->input('questionid');
         $answer = $this->input('answer');
         if(    (($status = $this->_check_username($username)) < 0)
             (($status = $this->_check_email($email)) < 0)
             ($status = $_ENV['user']->get_user_by_uid($myuserid))
             ) {
             //入手下手更新会员材料
             $_ENV['user']->update_user($myuserid,$username, $password, $email, $myuserid, $questionid, $answer);
             return $myuserid;
         }else{
             $uid = $_ENV['user']->add_user($username, $password, $email, $myuserid, $questionid, $answer);
         }
         return $uid;
     }
     function onmyupdate() {
         $this->init_input();
         $username = $this->input('username');
         $myuserid = intval($this->input('uid'));
         $password =  $this->input('password');
         $email = $this->input('email');
         $questionid = $this->input('questionid');
         $answer = $this->input('answer');
         $status = $_ENV['user']->get_user_by_uid($myuserid);
         if(!$status) {
             return -1;
         }
         $uid = $_ENV['user']->update_user($myuserid,$username, $password, $email, $myuserid, $questionid, $answer);
         return $uid;
     }
然后在model/user.php到场

     function update_user($user_id,$username, $password, $email, $uid = 0, $questionid = '', $answer = '') {
         $salt = substr(uniqid(rand()), -6);
         $password = md5(md5($password).$salt);
         if(! $uid)return  0;
         $sqladd = $uid ? "uid='".intval($uid)."'," : '';
         $sqladd .= $questionid > 0 ? " secques='".$this->quescrypt($questionid, $answer)."'," : " secques='',";
         //不更新暗码,,salt='$salt'
         $this->db->query("update ".UC_DBTABLEPRE."members SET   username='$username', email='$email' where uid='$uid'");
         return $user_id;
     }

修正个中的add_user办法为:

     function add_user($username, $password, $email, $uid = 0, $questionid = '', $answer = '') {
         $salt = substr(uniqid(rand()), -6);
         $password = md5(md5($password).$salt);
         $sqladd = $uid ? "uid='".intval($uid)."'," : '';
         $sqladd .= $questionid > 0 ? " secques='".$this->quescrypt($questionid, $answer)."'," : " secques='',";
         $this->db->query("INSERT INTO ".UC_DBTABLEPRE."members SET $sqladd username='$username', password='$password', email='$email', regip='".$this->base->onlineip."', regdate='".$this->base->time."', salt='$salt'");
         $uid = $this->db->insert_id();
         $this->db->query("INSERT INTO ".UC_DBTABLEPRE."memberfields SET uid='$uid'");
         return $uid;
     }
如许,在uchome注册的用户就可以主动映照到discuz,不需求激活。直接更新。

个中discuz体系的关头局部在include/common.inc.php外面的140行摆布的验证用户登录的。这里切入便可。就是在发生$sid=$discuz_pw= $discuz_secques= $discuz_uid这几个变量的时分。包括本人的通行证,直接可以买通。

uchome在source/function_common.php这个function checkauth() 函数外面直接切入就能够了。
在一个团队之中或者说是在一个公司的工作岗位上,需要注重团队之间的交流合作;在学习或工作上都要端正自己的态度,要以认真的态度来对每件事,这样才能让自己更快的投入、更快的学习,而不至于浪费自己的时间。
谁可相欹 该用户已被删除
19#
发表于 2015-4-21 07:26:05 | 只看该作者
爱上php,他也会爱上你。
灵魂腐蚀 该用户已被删除
18#
发表于 2015-4-19 07:56:34 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
再见西城 该用户已被删除
17#
发表于 2015-4-17 16:24:32 | 只看该作者
做为1门年轻的语言,php一直很努力。
不帅 该用户已被删除
16#
发表于 2015-4-17 12:07:47 | 只看该作者
当然这种网站的会员费就几十块钱。
admin 该用户已被删除
15#
发表于 2015-4-16 10:11:42 | 只看该作者
爱上php,他也会爱上你。
飘灵儿 该用户已被删除
14#
发表于 2015-4-14 13:09:25 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
愤怒的大鸟 该用户已被删除
13#
发表于 2015-4-11 17:41:19 | 只看该作者
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
精灵巫婆 该用户已被删除
12#
发表于 2015-4-4 23:25:56 | 只看该作者
使用 jquery 等js框架的时候,要随时注意浏览器的更新情况,不然很容易发生框架不能使用。
深爱那片海 该用户已被删除
11#
发表于 2015-3-26 20:47:11 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
莫相离 该用户已被删除
10#
发表于 2015-3-25 09:26:03 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
分手快乐 该用户已被删除
9#
发表于 2015-3-15 04:26:08 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
金色的骷髅 该用户已被删除
8#
发表于 2015-3-12 00:53:46 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
若天明 该用户已被删除
7#
发表于 2015-3-5 07:57:07 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
老尸 该用户已被删除
6#
 楼主| 发表于 2015-3-1 13:47:38 | 只看该作者
Ps:以上纯属原创,如有雷同,纯属巧合
变相怪杰 该用户已被删除
5#
发表于 2015-2-23 09:03:53 | 只看该作者
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
简单生活 该用户已被删除
地板
发表于 2015-2-21 20:42:57 | 只看该作者
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
若相依 该用户已被删除
板凳
发表于 2015-2-13 18:31:12 | 只看该作者
学习php的目的往往是为了开发动态网站,phper就业的要求也涵盖了很多。我大致总结为:精通php和mysql
小魔女 该用户已被删除
沙发
发表于 2015-2-9 17:46:26 | 只看该作者
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
冷月葬花魂 该用户已被删除
楼主
发表于 2015-2-4 06:35:03 | 只看该作者
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-14 15:38

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表