关于ecshop注册会员后二次登录不成功的问题
发布:smiling 来源: PHP粉丝网 添加日期:2014-06-14 14:05:52 浏览: 评论:0
很久没上博客写东西了,每次都是把平常工作上遇到的问题解决后才发布到博客上面来,一来是感觉其他人用到相同平台应该也会碰到同样的问题,在这里给大家领好方向,二来,本人记性不大好,容易忘事.
说说这个问题吧,今天早上还在测试基于ecshop后台的商城开发,其实之前一直出现这个问题,源于本人不长记性,还以为是自己记错密码了,早上认真的想了一回,发现不是本人记错了.
比如:新注册一个会员,成功后顺利登录到会员中心页面,接着退出,再登录,这次还是成功的,接着再登录,这次就不行了,显示用户名或密码不正确,本人才意识到问题大条了,百度上搜啊搜,看到很多遇到同样问题的帖子,但是没有解决到根本上,郁闷!
直到旁边的兄弟提醒了下,先注册一个,看数据库这条记录,然后重新登录,再看一下这条记录,比较一下有什么细微变化没,哥照做了,没错,有三个地方发生变化,其中一个是登录次数,这个可以忽略,不是重点,另外一个是密码的md5值和 ec_salt 这个字段,可以看出 ec_salt 注册时原本是空值,重新登录后这里却生成了一个值,差别就在此.
可以在ecshop整个文件夹里搜索这个字段出现的地方 在integrates/ecshop.php 可以找到$new_password=md5(md5($password).$ec_salt); 这句话,在这句代码往上看
- if(emptyempty($ec_salt))
- {
- $ec_salt=rand(1,9999);
- $new_password=md5(md5($password).$ec_salt);
- $sql = "UPDATE ".$this->table($this->user_table)."SET password= '" .$new_password."',ec_salt='".$ec_salt."'".
- " WHERE user_name='$post_username'";
- $this->db->query($sql);
- }
到这里问题就可以找到了,注册时ec_salt 这个字段是空的,所以当注册后session其实已经生成,所以直接跳转会员中心时不用经过登录这段代码的运行,所以就直接跳过上面这段代码了,但是第二次登录的时候,就会经过这段代码,检测到这个空值时,就会先随机生成一个数,在密码 MD5值情况下,再和这个值 MD5一次,这样就造成了密码被重新修改了一次,接着等你退出再要登录的时候,这时候的密码就不是你注册时候的那个密码了.
不好意思废话了那么多。。。
解决办法:1、直接在数据库里给这个字段默认一个值,四位数以内都可以.
Tags: ecshop注册会员 登录不成功
- 上一篇:让ECSHOP其他页面也能显示友情链接
- 下一篇:ecshop新建增加独立页面的方法
相关文章
- ·ECSHOP注册会员自动发送验证邮件(2014-06-19)
- ·ECSHOP显示新注册会员详细注册时间(2014-07-08)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)