最近在做一个项目,就是在账号安全栏目中加一个修改邮箱并验证的功能,这个功能并不复杂,可以参照用户注册时的邮箱验证来实现。
就是当用户更改邮箱并提交之后,发一封包含一个链接的邮件到用户的新邮箱中,当用户点击该链接后,打开对应的php文件,核实哈希码,然后修改dede数据库中的邮箱字段。
其中有这样的一段代码:
#api{{
if(defined('UC_API') && @include_once DEDEROOT.'/uc_client/client.php')
{
$emailnew = $email != $row['email'] ? $email : '';
//var_dump($cfg_ml->M_LoginID);echo('@@@');var_dump($oldpwd);echo('@@@');var_dump($userpwd);echo('@@@');var_dump($emailnew);die('@@@');
$ucresult = uc_user_edit($cfg_ml->M_LoginID, $oldpwd, $userpwd, $emailnew);
}
#/aip}}
这是更新UCenter中用户邮箱字段的,我打印出了uc_user_edit()函数中的每个参数,可是我按照它的类型插入参数后,无论如何就是不能修改UCenter中的邮箱字段。
为此我折腾了差不多两天的时间,结果偶然发现,只要我插入的邮箱是ucenter中已经存在的邮箱,那么就无法更新该字段,也就是说一个邮箱只能对应一个用户。
而我每次都是用163或者sina的邮箱,而这两个邮箱ucenter中已经有了,所以不能修改。我修改了一个新邮箱后,更新成功!
我一直以为是修改后的dede代码有问题,没想到问题出在了这里,为此花了大量的时间和精力,非常之坑爹!
在此记录,以免忘记(虽然想忘掉这事很难),同时也提醒遇到类似问题的朋友,有时候,要相信自己,相信自己的代码,考虑一下是不是其他的情况影响。
还有一点,我们在dede后台的会员管理中修改用户的密码和邮箱,在ucenter中无法做到同步修改,加上上面的代码也不行,因为$oldpwd无法获取到,所以不能执行uc_user_edit()这个方法。经试验,在dede后台中改了原来的密码后,用老密码仍然可以登录,用新密码登录无效,只有在ucenter中改了密码后,才能生效。
如果要同步ucenter中的用户信息,那么想要找到E:\wamp\www\dede\uc_client\model\user.php,把if(!$ignoreoldpw && $data['password'] != md5(md5($oldpw).$data['salt'])){...}
这个判断注释掉。
分享到:
相关推荐
dede后台密码修改器 可以修改dede后台密码 织梦开发
dede 修改技巧,让你轻松修改织梦模板
有效修改不知道的后台用户和密码,好用方便
dede产品排序功能修改文件,dede产品排序功能修改文件
dede首页flash标题的修改,具体有一个文件
dede后台密码忘记了,怎么修改.本工具是用于新人忘记管理员密码重设所制作,只需要将radminpass.php文件拷贝到根目录,运行“http://yousite/radminpass.php(yousite为网站域名)”,按照操作执行就可以。恢复完成...
DEDE反汇编Delphi/BCB,增加对特殊处理过的PACKAGEINFO的Uint List的显示,修复原有Dump Active Process的BUG,修复拖放处理程序时,确认对话框的BUG!
DeDe_3.5.rar
ucenter整合discuz、wordpress、dede系统,实现一个账号多平台登录,账号通用,账号管理,单点登录
05.修改原有的"Open With DEDE"的注册键错误&BUG,可以使用右键运行DEDE反汇编Delphi/BCB 06.去处NAG显示 07.修复原有Dump Active Process的BUG 08.Enable Dump按钮 09.修复拖放处理程序时,确认对话框的BUG! 10.修复...
DEDE淘宝插件DEDE淘宝插件DEDE淘宝插件DEDDEDE淘宝插件E淘宝插件
dede标签大全_dede标签生成工具,DEDE仿站利器
织梦 dede 列表Pagelist 内容prenext 中英 首先需要找到安装目录下的include/arc.archives.class.php 注意是修改方法的参数,为其添加$pagelang个参数; 在页面中可以调用 {dede:prenext get='next' pagelang='...
dede中日期的调用 内容页 列表页 首页日期调用
dede_cms_5.7广告修改及添加广告位大全,包含了所有的广告位添加的方法 ,帮助大家更快的添加广告位!
delphi dede.5 delphi dede.5 delphi dede.5
dede织梦系统后台登陆密码忘记了。可以用它把密码修改回来、
自己收藏的DEDE内核源码,自己偏写改编成功的,希望大家有好的一起探讨一下!
dede后台登录界面 dede, dede后台,登录界面
dede解决seo的自定义文章名称的url问题