设为首页收藏本站

Discuz! 官方站

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 67803|回复: 17

注册提示“邮箱、密码等无效” 临时解决方案

[复制链接]
发表于 2012-10-10 11:02:36 | 显示全部楼层 |阅读模式
问题现象:
    注册的时候,输入正确的邮箱,或者密码确认的时候 ,提示输入不正确

问题原因:
    由于注册表单中name是随机产生的,当产生name为纯数字的时候会产生问题。

解决方案:
    打开function_core.php,找到random函数
  1. function random($length, $numeric = 0) {
  2.        $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
  3.        $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
  4.        $hash = '';
  5.        $max = strlen($seed) - 1;
  6.        for($i = 0; $i < $length; $i++) {
  7.               $hash .= $seed{mt_rand(0, $max)};
  8.        }
  9.        return $hash;
  10. }
复制代码
更改为:
  1. function random($length, $numeric = 0) {
  2.         $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
  3.         $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
  4.         if($numeric) {
  5.                 $hash = '';
  6.         } else {
  7.                 $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
  8.                 $length--;
  9.         }
  10.         $max = strlen($seed) - 1;
  11.         for($i = 0; $i < $length; $i++) {
  12.                 $hash .= $seed{mt_rand(0, $max)};
  13.         }
  14.         return $hash;
  15. }
复制代码
发表于 2012-10-10 13:04:01 | 显示全部楼层
果断沙发支持!
回复

使用道具 举报

发表于 2012-10-10 13:05:54 | 显示全部楼层
{:soso_e163:}
回复

使用道具 举报

发表于 2012-10-10 13:09:15 | 显示全部楼层
呵呵 又一个bug
回复

使用道具 举报

发表于 2012-10-10 17:00:12 | 显示全部楼层
补丁里带了这么多BUG,应该不叫补丁吧
回复

使用道具 举报

发表于 2012-10-10 23:46:56 | 显示全部楼层

给楼主补充一下,楼主说明的太简单了

本帖最后由 popuppp 于 2012-10-10 23:53 编辑

  修改方法,将/source/function中的function_core.php
  1. function random($length, $numeric = 0) {
  2. $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
  3. $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
  4. $hash = '';
  5. $max = strlen($seed) - 1;
  6. for($i = 0; $i < $length; $i++) {
  7. $hash .= $seed{mt_rand(0, $max)};
  8. }
  9. return $hash;
  10. }
复制代码
修改为
  1. function random($length, $numeric = 0) {
  2. $seed = base_convert(md5(microtime().$_SERVER['DOCUMENT_ROOT']), 16, $numeric ? 10 : 35);
  3. $seed = $numeric ? (str_replace('0', '', $seed).'012340567890') : ($seed.'zZ'.strtoupper($seed));
  4. if($numeric) {
  5. $hash = '';
  6. } else {
  7. $hash = chr(rand(1, 26) + rand(0, 1) * 32 + 64);
  8. $length--;
  9. }
  10. $max = strlen($seed) - 1;
  11. for($i = 0; $i < $length; $i++) {
  12. $hash .= $seed{mt_rand(0, $max)};
  13. }
  14. return $hash;
  15. }
复制代码
回复

使用道具 举报

发表于 2012-10-11 14:59:21 | 显示全部楼层
果断学习一下。
回复

使用道具 举报

发表于 2012-10-15 11:50:23 | 显示全部楼层
popuppp 发表于 2012-10-10 23:46
修改方法,将/source/function中的function_core.php修改为

那到底是改那一个呢
亲!

还是说  你这个只是详细版本的呢?
回复

使用道具 举报

发表于 2012-10-21 21:41:07 | 显示全部楼层
我也遇到这个问题了
回复

使用道具 举报

发表于 2012-10-30 10:14:55 | 显示全部楼层
我准备升级最新版 ,全哈,我是来测试BUG的!{:soso_e132:}
可是我本地测试怎么没发现这个问题{:soso_e152:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|Comsenz ( 粤B2-20090059-165 )  

GMT+8, 2017-11-24 22:52

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表