来源:自学PHP网 时间:2014-11-28 23:31 作者: 阅读:次
[导读] 很久没上博客写东西了,每次都是把平常工作上遇到的问题解决后才发布到博客上面来,一来是感觉其他人用到相同平台应该也会碰到同样的问题,在这里给大家领好方向,二来,本人记性不大...
关于ecshop注册会员后二次登录不成功的问题很久没上博客写东西了,每次都是把平常工作上遇到的问题解决后才发布到博客上面来,一来是感觉其他人用到相同平台应该也会碰到同样的问题,在这里给大家领好方向,二来,本人记性不大好,容易忘事. 说说这个问题吧,今天早上还在测试基于ecshop后台的商城开发,其实之前一直出现这个问题,源于本人不长记性,还以为是自己记错密码了,早上认真的想了一回,发现不是本人记错了. 比如:新注册一个会员,成功后顺利登录到会员中心页面,接着退出,再登录,这次还是成功的,接着再登录,这次就不行了,显示用户名或密码不正确,本人才意识到问题大条了,百度上搜啊搜,看到很多遇到同样问题的帖子,但是没有解决到根本上,郁闷! 直到旁边的兄弟提醒了下,先注册一个,看数据库这条记录,然后重新登录,再看一下这条记录,比较一下有什么细微变化没,哥照做了,没错,有三个地方发生变化,其中一个是登录次数,这个可以忽略,不是重点,另外一个是密码的md5值和 ec_salt 这个字段,可以看出 ec_salt 注册时原本是空值,重新登录后这里却生成了一个值,差别就在此. 可以在ecshop整个文件夹里搜索这个字段出现的地方 在integrates/ecshop.php 可以找到$new_password=md5(md5($password).$ec_salt); 这句话,在这句代码往上看
到这里问题就可以找到了,注册时ec_salt 这个字段是空的,所以当注册后session其实已经生成,所以直接跳转会员中心时不用经过登录这段代码的运行,所以就直接跳过上面这段代码了,但是第二次登录的时候,就会经过这段代码,检测到这个空值时,就会先随机生成一个数,在密码 MD5值情况下,再和这个值 MD5一次,这样就造成了密码被重新修改了一次,接着等你退出再要登录的时候,这时候的密码就不是你注册时候的那个密码了. 不好意思废话了那么多。。。 解决办法:1、直接在数据库里给这个字段默认一个值,四位数以内都可以. 2、在代码里面改,就是在增加会员记录时,给ec_salt赋一个默认值.
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com