php专区

 首页 > php专区 > PHP应用 > CMS建站 > 关于ecshop注册会员后二次登录不成功的问题 - e

关于ecshop注册会员后二次登录不成功的问题 - e

分享到:
【字体:
导读:
          很久没上博客写东西了,每次都是把平常工作上遇到的问题解决后才发布到博客上面来,一来是感觉其他人用到相同平台应该也会碰到同样的问题,在这里给大家领好方向,二来,本人记性不大...

关于ecshop注册会员后二次登录不成功的问题

很久没上博客写东西了,每次都是把平常工作上遇到的问题解决后才发布到博客上面来,一来是感觉其他人用到相同平台应该也会碰到同样的问题,在这里给大家领好方向,二来,本人记性不大好,容易忘事.

说说这个问题吧,今天早上还在测试基于ecshop后台的商城开发,其实之前一直出现这个问题,源于本人不长记性,还以为是自己记错密码了,早上认真的想了一回,发现不是本人记错了.

比如:新注册一个会员,成功后顺利登录到会员中心页面,接着退出,再登录,这次还是成功的,接着再登录,这次就不行了,显示用户名或密码不正确,本人才意识到问题大条了,百度上搜啊搜,看到很多遇到同样问题的帖子,但是没有解决到根本上,郁闷!

直到旁边的兄弟提醒了下,先注册一个,看数据库这条记录,然后重新登录,再看一下这条记录,比较一下有什么细微变化没,哥照做了,没错,有三个地方发生变化,其中一个是登录次数,这个可以忽略,不是重点,另外一个是密码的md5值和  ec_salt 这个字段,可以看出 ec_salt 注册时原本是空值,重新登录后这里却生成了一个值,差别就在此.

可以在ecshop整个文件夹里搜索这个字段出现的地方 在integrates/ecshop.php 可以找到$new_password=md5(md5($password).$ec_salt); 这句话,在这句代码往上看

  1. if(emptyempty($ec_salt)) 
  2. $ec_salt=rand(1,9999); 
  3. $new_password=md5(md5($password).$ec_salt); 
  4. $sql = "UPDATE ".$this->table($this->user_table)."SET password= '" .$new_password."',ec_salt='".$ec_salt."'"
  5.                    " WHERE user_name='$post_username'"
  6.                          $this->db->query($sql); 
  7.             } 

到这里问题就可以找到了,注册时ec_salt 这个字段是空的,所以当注册后session其实已经生成,所以直接跳转会员中心时不用经过登录这段代码的运行,所以就直接跳过上面这段代码了,但是第二次登录的时候,就会经过这段代码,检测到这个空值时,就会先随机生成一个数,在密码 MD5值情况下,再和这个值 MD5一次,这样就造成了密码被重新修改了一次,接着等你退出再要登录的时候,这时候的密码就不是你注册时候的那个密码了.

不好意思废话了那么多。。。

解决办法:1、直接在数据库里给这个字段默认一个值,四位数以内都可以.

          2、在代码里面改,就是在增加会员记录时,给ec_salt赋一个默认值.
分享到:
ecshop新建增加独立页面的方法 - ecshop
ecshop新建增加独立页面的方法 ecshop是通过php文件来指向dwt文件的,比如index.php是程序文件,那么其模板文件就是index.dwt. 那么如果新建一个 php文件来单独做其他作用呢?其实很简单. 第一步:将index.php复制一份 new.php出来,这里new.php代表一个新页面,以后我们可以通过 域名/new.php ...
让ECSHOP其他页面也能显示友情链接 - ecs...
让ECSHOP其他页面也能显示友情链接 熟悉ECSHOP的朋友都知道,ECSHOP默认情况下只在首页显示友情链接,如何让ECSHOP其他页面也能调用并显示友情链接呢??下面来说一下答案. 第一步:打开 /index.php 找到 index_get_links() 函数,将之剪切并粘贴到 /includes/lib_goods.php 文件里. /** ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……