关闭

DEDE修改注册邮箱时一起修改UCenter中用户邮箱的问题

1416人阅读 评论(0) 收藏 举报
分类:

最近在做一个项目,就是在账号安全栏目中加一个修改邮箱并验证的功能,这个功能并不复杂,可以参照用户注册时的邮箱验证来实现。

就是当用户更改邮箱并提交之后,发一封包含一个链接的邮件到用户的新邮箱中,当用户点击该链接后,打开对应的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'])){...}

这个判断注释掉。

0
0
查看评论

discuz如何让一个邮箱注册多个用户名?

Discuz! 程序版本 Discuz! X3.2 Release 20160601   1、管理后台进入UCenter,然后点菜单,找到注册设置:    是否允许同一个Email地址注册多个用户,在下面点“是”,保存设置。     ...
  • friendan
  • friendan
  • 2016-11-04 09:35
  • 1127

GitLab8取消用户注册邮箱验证功能

##  目录根据自己git安装的目录自行修改,为防止万一,对所有修改的文件进行备份 ============================================================= 1.cd /data/gitlab-8.5.1-0/apps/gitlab/htd...
  • zxs_tyh
  • zxs_tyh
  • 2017-07-05 10:31
  • 1343

修改git已经commit的邮箱和用户名

第一步:前往需要修改的版本 1、使用 git log 获取需要修改的版本id 2、使用 git reset –soft [版本号] 前往版本 第二步:修改信息 使用 git commit --amend --author='用户名 '修改 在打开的文件中保存一下就可以了 ...
  • ldaokun2006
  • ldaokun2006
  • 2016-02-04 11:09
  • 4457

SSH之邮箱激活

一、概念了解          要想实现邮箱激活,首先必须明白什么是邮箱激活。大家是否还记得在注册各类账号时,点击注册后往往会提示“是否到邮箱激活?”比如:12306购票软件,QQ,微信等都有这样的功能,这样可以提高...
  • liu_yujie2011com
  • liu_yujie2011com
  • 2015-10-30 15:12
  • 1919

gerrit 注册邮箱时出错

gerrit注册邮箱时报错,如下: SMTP server rejected auth: 535 Error: authentication failed
  • zwwjs
  • zwwjs
  • 2014-05-30 16:29
  • 2147

邮箱激活用户功能

需求:网站注册用户时,需要填写邮箱,用户成功提交了信息后,会提示用户去邮箱激活帐号,激活后账号才能使用,否则不可以登录。   思路: 1,写一个注册页面,需要填的信息包括username,password,email,提交后会根据email给用户的邮箱发送激活的超链接。 2,提交到...
  • xzm_rainbow
  • xzm_rainbow
  • 2013-11-10 19:48
  • 1358

iwebshop添加邀请用户功能-邮箱邀请

为了吸引更多的用户注册我们给iwebshop添加邀请用户功能-邮箱邀请 效果展示: 1、邮箱发送 2、点击链接注册 注册成功之后邀请人积分增加100 代码实现: 1、首先我们在user表中添加invite字段 2、在views/default...
  • chenquan23
  • chenquan23
  • 2017-08-15 19:29
  • 390

UCenter、UChome增加邮箱地址登录功能

很多使用UCenter作为用户账户管理中心的朋友想要让其支持邮箱登录,一些开发者甚至自己去写了很多代码来实现这个功能。其实没有那么麻烦,要支持邮箱登录只需对你的应用做一点小小的改动就可以了。注意:要使用邮箱登录功能的话,建议你在UCenter后台管理中设置不允许重复的邮箱地址!因为UCenter客户...
  • tinico
  • tinico
  • 2014-01-09 09:19
  • 2420

修改git全部已提交的用户名和邮箱

原文的link:http://dangzhiqiang.blog.51cto.com/7961271/1657864 即:修改git所有commit中的用户名和email 作为一名 Git 苦手,我一直使用的是傻瓜级的 Github 客户端,去年九月迁移到 OS X 后也是如...
  • LOVE____JAVA
  • LOVE____JAVA
  • 2016-05-12 18:01
  • 9041

邮箱激活注册用户

当我们注册一个网站的时候,很多时候会让我们去注册的邮箱接收激活邮件来完成注册,今天看了SSH视频,发现原理原来如此的简单,看来我们想当然的高大上其实有的时候并不难,只是我们不知道罢了~邮箱激活的原理:当我们注册的时候我们会填写注册的邮箱,点击注册,系统会给你的邮箱发送一封邮件,里边包含了我们注册用户...
  • cd18333612683
  • cd18333612683
  • 2017-01-09 21:08
  • 740
    个人资料
    • 访问:1248247次
    • 积分:11933
    • 等级:
    • 排名:第1493名
    • 原创:137篇
    • 转载:445篇
    • 译文:3篇
    • 评论:34条
    文章分类
    最新评论