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