Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

支持 使用email登录或者用户名均可登录

[复制链接]
 楼主| darkeyes 发表于 2008-6-9 22:10:02 | 显示全部楼层
原帖由 litaowan 于 2008-6-9 22:00 发表
在source/do_login.php


中修改

在if($_SCONFIG['seccode_login']) {
后面添加

    if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$username))
        {
                     $emai ...



在if($_SCONFIG['seccode_login']) {
上面添加以上代码!


[ 本帖最后由 darkeyes 于 2008-6-9 22:13 编辑 ]
回复

使用道具 举报

 楼主| darkeyes 发表于 2008-6-9 22:17:41 | 显示全部楼层
不成功给我说
回复

使用道具 举报

 楼主| darkeyes 发表于 2008-6-9 23:16:43 | 显示全部楼层
有问题请反馈!~
回复

使用道具 举报

litaowan 发表于 2008-6-9 23:31:04 | 显示全部楼层
修改后的文件是不是这样的呢 还要修改其它文件吗 谢谢
  1. <?php
  2. /*
  3.         [UCenter Home] (C) 2007-2008 Comsenz Inc.
  4.         $Id: do_login.php 7358 2008-05-13 06:15:41Z liguode $
  5. */

  6. if(!defined('IN_UCHOME')) {
  7.         exit('Access Denied');
  8. }

  9. $refer = rawurldecode($_SCOOKIE['_refer']);
  10. if(preg_match("/(cp.php|admincp.php|do.php)/i", $refer)) {
  11.         $refer = '';
  12. }
  13. if(empty($refer)) {
  14.         $refer = 'space.php?do=home';
  15. }

  16. //好友邀请
  17. $uid = empty($_GET['uid'])?0:intval($_GET['uid']);
  18. $invite = empty($_GET['invite'])?'':$_GET['invite'];
  19. $invitearr = array();
  20. if($uid && $invite) {
  21.         include_once(S_ROOT.'./source/function_cp.php');
  22.         $invitearr = invite_get($uid, $invite);
  23. }

  24. //没有登录表单
  25. $_SGLOBAL['nologinform'] = 1;

  26. if(submitcheck('loginsubmit')) {

  27.         $password = $_POST['password'];
  28.         $username = trim($_POST['username']);
  29.         $cookietime = intval($_POST['cookietime']);
  30.        
  31.         $cookiecheck = $cookietime?' checked':'';
  32.         $membername = $username;
  33.        
  34.         if(empty($_POST['username'])) {
  35.                 showmessage('users_were_not_empty_please_re_login');
  36.         }
  37.        

  38.     if(eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,4}$",$username))
  39.         {
  40.                      $email = $username;
  41.         
  42.             $query1 = $_SGLOBAL['db']->query("SELECT uid FROM uchome_spacefield  WHERE email='$email'");
  43.                     $info1 = $_SGLOBAL['db']->fetch_array($query1);
  44.            $uid = $info1['uid'];
  45.                
  46.                if(empty($uid))
  47.                 {
  48.         $query = $_SGLOBAL['db']->query("SELECT username FROM uc_members WHERE email='$email1'");
  49.                $info = $_SGLOBAL['db']->fetch_array($query);
  50.                $username = $info['username'];
  51.                 }
  52.                 else
  53.                 {
  54.            $query = $_SGLOBAL['db']->query("SELECT username FROM uc_members WHERE uid='$uid'");
  55.            $info = $_SGLOBAL['db']->fetch_array($query);
  56.            $username = $info['username'];
  57.                 }

  58.       
  59.         
  60.         }

  61.         if($_SCONFIG['seccode_login']) {
  62.                 include_once(S_ROOT.'./source/function_cp.php');
  63.                 if(!ckseccode($_POST['seccode'])) {
  64.                         $_SGLOBAL['input_seccode'] = 1;
  65.                         include template('do_login');
  66.                         exit;
  67.                 }
  68.         }

  69.         //同步获取用户源
  70.         if(!$passport = getpassport($username, $password)) {
  71.                 showmessage('login_failure_please_re_login', 'do.php?ac=login');
  72.         }
  73.        
  74.         $setarr = array(
  75.                 'uid' => $passport['uid'],
  76.                 'username' => addslashes($passport['username']),
  77.                 'password' => md5("$passport[uid]|$_SGLOBAL[timestamp]")//本地密码随机生成
  78.         );
  79.                
  80.         //检索当前用户
  81.         $query = $_SGLOBAL['db']->query("SELECT password FROM ".tname('member')." WHERE uid='$setarr[uid]'");
  82.         if($value = $_SGLOBAL['db']->fetch_array($query)) {
  83.                 $setarr['password'] = addslashes($value['password']);
  84.         } else {
  85.                 //更新本地用户库
  86.                 inserttable('member', $setarr, 0, true);
  87.         }

  88.         //清理在线session
  89.         $space = insertsession($setarr);
  90.        
  91.         //设置cookie
  92.         ssetcookie('auth', authcode("$setarr[password]\t$setarr[uid]", 'ENCODE'), $cookietime);
  93.         ssetcookie('loginuser', $passport['username'], 31536000);
  94.         ssetcookie('_refer', '');
  95.        
  96.         //开通空间
  97.         if(empty($space)) {
  98.                 include_once(S_ROOT.'./source/function_space.php');
  99.                 $space = space_open($setarr['uid'], $setarr['username'], 0, $passport['email']);
  100.         }
  101.        
  102.         //同步登录
  103.         include_once S_ROOT.'./uc_client/client.php';
  104.         $ucsynlogin = uc_user_synlogin($setarr['uid']);
  105.        
  106.         //好友邀请
  107.         if($invitearr) {
  108.                 //成为好友
  109.                 invite_update($invitearr['id'], $setarr['uid'], $setarr['username'], $invitearr['uid'], $invitearr['username']);
  110.         }

  111.         showmessage('login_success', $_POST['refer'], 1, array($ucsynlogin));
  112. }

  113. $membername = empty($_SCOOKIE['loginuser'])?'':sstripslashes($_SCOOKIE['loginuser']);
  114. $cookiecheck = ' checked';

  115. include template('do_login');

  116. ?>
复制代码
回复

使用道具 举报

 楼主| darkeyes 发表于 2008-6-10 08:18:46 | 显示全部楼层
我没仔细看你的代码。

你可以用 UCHOME的原文件do_login.php覆盖,然后按照我上面说的修改
回复

使用道具 举报

 楼主| darkeyes 发表于 2008-6-10 09:31:08 | 显示全部楼层
良好。

至今没发现什么问题!
回复

使用道具 举报

litaowan 发表于 2008-6-10 11:01:11 | 显示全部楼层
还是不成功
回复

使用道具 举报

litaowan 发表于 2008-6-10 11:02:27 | 显示全部楼层
建议对于没有修改过源文件的我们给个直接覆盖的文件好了 谢谢 同事考虑下是否有数据库前缀不一样的东西
回复

使用道具 举报

okooo 发表于 2008-6-10 11:07:52 | 显示全部楼层
很好,不知道论坛能不能一起用呀。。。
回复

使用道具 举报

 楼主| darkeyes 发表于 2008-6-10 11:08:17 | 显示全部楼层
原帖由 litaowan 于 2008-6-10 11:02 发表
建议对于没有修改过源文件的我们给个直接覆盖的文件好了 谢谢 同事考虑下是否有数据库前缀不一样的东西



1、你可自己下载 UCHOME1.2。然后用do_login.php 覆盖
2、按照上述步骤,修改
3、注意:如果你安装的时候,没有改过表前缀。就不用动。如果修改过,并自行修改为自己的表前缀!用到uchome_spacefield 和uc_members 两个表。请对照自己的表前缀


如果还不行,请将你的表 结构发上来。我看一下!


继续问题反馈!
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-6-16 15:12 , Processed in 0.134698 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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