&whataya want from me=emailmsg

你有浮动钳盘式制动器的设计资料吗?主要是说明书和CAD图纸,有的话可否发我一份?QQ:。_百度知道
为您推荐:
盘式制动器的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁[原]ecshop二次开发——新注册用户后台确认功能 - 推酷
[原]ecshop二次开发——新注册用户后台确认功能
1. 新注册的用户需要后台管理员进行确认之后才能成为正式用户。
2. 新用户注册之后,提示请等待管理员确认后才能使用。
3. 新注册的用户,如果管理员没有对其注册身份进行确认,在登录时会提示请等待管理员确认之后才能登录。
在观察数据库表的时候发现,users表中有个is_validated字段,默认是0,表明没有通过验证。我们基于这个字段来实现本文要求的功能。
【1】先处理用户登录时的检查,如果is_validated字段是0,那么提示用户需要管理员对其身份进行确认之后才能登录。
修改\includes\modules\integrates\ecshop.php中的check_user函数(这里从表中读取了is_validated的值,如果该值为0则返回-1表明用户已经注册但是没有被激活),此外为了结合后台修改用户是否被验证的状态,重载了edit_user函数:
* ECSHOP 会员数据处理类
* ============================================================================
* * 版权所有
上海商派网络科技有限公司,并保留所有权利。
* 网站地址:
* ----------------------------------------------------------------------------
* 这是一个免费开源的软件;这意味着您可以在不用于商业目的的前提下对程序代码
* 进行修改、使用和再发布。
* ============================================================================
* $Author: liubo $
* $Id: ecshop.php -01-19 06:29:08Z liubo $
if (!defined('IN_ECS'))
die('Hacking attempt');
/* 模块的基本信息 */
if (isset($set_modules) && $set_modules == TRUE)
$i = (isset($modules)) ? count($modules) : 0;
/* 会员数据整合插件的代码必须和文件名保持一致 */
$modules[$i]['code']
= 'ecshop';
/* 被整合的第三方程序的名称 */
$modules[$i]['name']
= 'ECSHOP';
/* 被整合的第三方程序的版本 */
$modules[$i]['version'] = '2.0';
/* 插件的作者 */
$modules[$i]['author']
= 'ECSHOP R&D TEAM';
/* 插件作者的官方网站 */
$modules[$i]['website'] = '';
require_once(ROOT_PATH . 'includes/modules/integrates/integrate.php');
class ecshop extends integrate
var $is_ecshop = 1;
var $is_validated = '0';
function __construct($cfg)
$this-&ecshop($cfg);
* @return void
function ecshop($cfg)
parent::integrate(array());
$this-&user_table = 'users';
$this-&field_id = 'user_id';
$this-&ec_salt = 'ec_salt';
$this-&field_name = 'user_name';
$this-&field_pass = 'password';
$this-&field_email = 'email';
$this-&field_gender = 'sex';
$this-&field_bday = 'birthday';
$this-&field_reg_date = 'reg_time';
$this-&need_sync =
$this-&is_ecshop = 1;
$this-&is_validated = &is_validated&;
检查指定用户是否存在及密码是否正确(重载基类check_user函数,支持zc加密方法)
function check_user($username, $password = null)
if ($this-&charset != 'UTF8')
$post_username = ecs_iconv('UTF8', $this-&charset, $username);
$post_username = $
if ($password === null)
$sql = &SELECT & . $this-&field_id .
& FROM & . $this-&table($this-&user_table).
& WHERE & . $this-&field_name . &='& . $post_username . &'&;
return $this-&db-&getOne($sql);
//We also get the is_validated value
$sql = &SELECT user_id, password, is_validated, salt,ec_salt & .
& FROM & . $this-&table($this-&user_table).
& WHERE user_name='$post_username'&;
$row = $this-&db-&getRow($sql);
$ec_salt=$row['ec_salt'];
if (empty($row))
$is_validated = $row['is_validated'];
if (0 == $is_validated)
//We use -1 denote that that user resigstered by not validated.
return -1;
if (empty($row['salt']))
if ($row['password'] != $this-&compile_password(array('password'=&$password,'ec_salt'=&$ec_salt)))
if(empty($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);
return $row['user_id'];
/* 如果salt存在,使用salt方式加密验证,验证通过洗白用户密码 */
$encrypt_type = substr($row['salt'], 0, 1);
$encrypt_salt = substr($row['salt'], 1);
/* 计算加密后密码 */
$encrypt_password = '';
switch ($encrypt_type)
case ENCRYPT_ZC :
$encrypt_password = md5($encrypt_salt.$password);
/* 如果还有其他加密方式添加到这里
//case other :
----------------------------------
case ENCRYPT_UC :
$encrypt_password = md5(md5($password).$encrypt_salt);
$encrypt_password = '';
if ($row['password'] != $encrypt_password)
$sql = &UPDATE & . $this-&table($this-&user_table) .
& SET password = '&.
$this-&compile_password(array('password'=&$password)) . &', salt=''&.
& WHERE user_id = '$row[user_id]'&;
$this-&db-&query($sql);
return $row['user_id'];
编辑用户信息($password, $email, $gender, $bday) 重载父类的方法
* @return void
function edit_user($cfg)
if (empty($cfg['username']))
$cfg['post_username'] = $cfg['username'];
$values = array();
if (!empty($cfg['password']) && empty($cfg['md5password']))
$cfg['md5password'] = md5($cfg['password']);
if ((!empty($cfg['md5password'])) && $this-&field_pass != 'NULL')
$values[] = $this-&field_pass . &='& . $this-&compile_password(array('md5password'=&$cfg['md5password'])) . &'&;
if ((!empty($cfg['email'])) && $this-&field_email != 'NULL')
/* 检查email是否重复 */
$sql = &SELECT & . $this-&field_id .
& FROM & . $this-&table($this-&user_table).
& WHERE & . $this-&field_email . & = '$cfg[email]' &.
& AND & . $this-&field_name . & != '$cfg[post_username]'&;
if ($this-&db-&getOne($sql, true) & 0)
$this-&error = ERR_EMAIL_EXISTS;
// 检查是否为新E-mail
$sql = &SELECT count(*)& .
& FROM & . $this-&table($this-&user_table).
& WHERE & . $this-&field_email . & = '$cfg[email]' &;
if($this-&db-&getOne($sql, true) == 0)
// 新的E-mail
$sql = &UPDATE & . $GLOBALS['ecs']-&table('users') . & SET is_validated = 0 WHERE user_name = '$cfg[post_username]'&;
$this-&db-&query($sql);
$values[] = $this-&field_email . &='&. $cfg['email'] . &'&;
if (isset($cfg['gender']) && $this-&field_gender != 'NULL')
$values[] = $this-&field_gender . &='& . $cfg['gender'] . &'&;
if ((!empty($cfg['bday'])) && $this-&field_bday != 'NULL')
$values[] = $this-&field_bday . &='& . $cfg['bday'] . &'&;
if ((!is_null($cfg['is_validated'])) && $this-&is_validated != 'NULL')
$values[] = $this-&is_validated . &='& . $cfg['is_validated'] . &'&;
if ($values)
$sql = &UPDATE & . $this-&table($this-&user_table).
& SET & . implode(', ', $values).
& WHERE & . $this-&field_name . &='& . $cfg['post_username'] . &' LIMIT 1&;
$this-&db-&query($sql);
if ($this-&need_sync)
if (empty($cfg['md5password']))
$this-&sync($cfg['username']);
$this-&sync($cfg['username'], '', $cfg['md5password']);
修改\includes\modules\integrates\integrate.php中的login和add_user函数:
用户登录函数
* @return int
function login($username, $password, $remember = null)
$rt = $this-&check_user($username, $password);
if ($rt & 0)
if ($this-&need_sync)
$this-&sync($username,$password);
$this-&set_session($username);
$this-&set_cookie($username, $remember);
else if ($rt == -1)
//If the user is not valid, returns -1.
return -1;
添加一个新用户
* @return int
function add_user($username, $password, $email, $gender = -1, $bday = 0, $reg_date=0, $md5password='')
/* 将用户添加到整合方 */
if ($this-&check_user($username) != 0)
$this-&error = ERR_USERNAME_EXISTS;
/* 检查email是否重复 */
$sql = &SELECT & . $this-&field_id .
& FROM & . $this-&table($this-&user_table).
& WHERE & . $this-&field_email . & = '$email'&;
if ($this-&db-&getOne($sql, true) & 0)
$this-&error = ERR_EMAIL_EXISTS;
$post_username = $
if ($md5password)
$post_password = $this-&compile_password(array('md5password'=&$md5password));
$post_password = $this-&compile_password(array('password'=&$password));
$fields = array($this-&field_name, $this-&field_email, $this-&field_pass);
$values = array($post_username, $email, $post_password);
if ($gender & -1)
$fields[] = $this-&field_
$values[] = $
if ($bday)
$fields[] = $this-&field_
$values[] = $
if ($reg_date)
$fields[] = $this-&field_reg_
$values[] = $reg_
$sql = &INSERT INTO & . $this-&table($this-&user_table).
& (& . implode(',', $fields) . &)&.
& VALUES ('& . implode(&', '&, $values) . &')&;
$this-&db-&query($sql);
if ($this-&need_sync)
$this-&sync($username, $password);
修改user.php中用到了check_user函数的两个条件判断代码(将其中的返回值的判断进行修改,修改后如下):
/* 验证用户注册用户名是否可以注册 */
elseif ($action == 'is_registered')
include_once(ROOT_PATH . 'includes/lib_passport.php');
$username = trim($_GET['username']);
$username = json_str_iconv($username);
if (($user-&check_user($username) != 0) || admin_registered($username))
echo 'false';
echo 'true';
if (($user_info && (!empty($code) && md5($user_info['user_id'] . $_CFG['hash_code'] . $user_info['reg_time']) == $code)) || ($_SESSION['user_id']&0 && $_SESSION['user_id'] == $user_id && ($user-&check_user($_SESSION['user_name'], $old_password) & 0)))
/* 处理会员的登录 */
elseif ($action == 'act_login')
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
$password = isset($_POST['password']) ? trim($_POST['password']) : '';
$back_act = isset($_POST['back_act']) ? trim($_POST['back_act']) : '';
$captcha = intval($_CFG['captcha']);
if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] & 2)) && gd_version() & 0)
if (empty($_POST['captcha']))
show_message($_LANG['invalid_captcha'], $_LANG['relogin_lnk'], 'user.php', 'error');
/* 检查验证码 */
include_once('includes/cls_captcha.php');
$validator = new captcha();
$validator-&session_word = 'captcha_login';
if (!$validator-&check_word($_POST['captcha']))
show_message($_LANG['invalid_captcha'], $_LANG['relogin_lnk'], 'user.php', 'error');
$rt = $user-&login($username, $password,isset($_POST['remember']));
if ($rt & 0)
update_user_info();
recalculate_price();
$ucdata = isset($user-&ucdata)? $user-&ucdata : '';
show_message($_LANG['login_success'] . $ucdata , array($_LANG['back_up_page'], $_LANG['profile_lnk']), array($back_act,'user.php'), 'info');
else if ($rt == -1)
show_message($_LANG['login_failure_invalid'], $_LANG['relogin_lnk'], 'user.php', 'error');
$_SESSION['login_fail'] ++ ;
show_message($_LANG['login_failure'], $_LANG['relogin_lnk'], 'user.php', 'error');
/* 处理 ajax 的登录请求 */
elseif ($action == 'signin')
include_once('includes/cls_json.php');
$json = new JSON;
$username = !empty($_POST['username']) ? json_str_iconv(trim($_POST['username'])) : '';
$password = !empty($_POST['password']) ? trim($_POST['password']) : '';
$captcha = !empty($_POST['captcha']) ? json_str_iconv(trim($_POST['captcha'])) : '';
= array('error' =& 0, 'content' =& '');
$captcha = intval($_CFG['captcha']);
if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] & 2)) && gd_version() & 0)
if (empty($captcha))
$result['error']
$result['content'] = $_LANG['invalid_captcha'];
die($json-&encode($result));
/* 检查验证码 */
include_once('includes/cls_captcha.php');
$validator = new captcha();
$validator-&session_word = 'captcha_login';
if (!$validator-&check_word($_POST['captcha']))
$result['error']
$result['content'] = $_LANG['invalid_captcha'];
die($json-&encode($result));
$rt = $user-&login($username, $password);
if ($rt & 0)
update_user_info();
//更新用户信息
recalculate_price(); // 重新计算购物车中的商品价格
$smarty-&assign('user_info', get_user_info());
$ucdata = empty($user-&ucdata)? && : $user-&
$result['ucdata'] = $
$result['content'] = $smarty-&fetch('library/member_info.lbi');
else if ($rt == -1)
if ($_SESSION['login_fail'] & 2)
$smarty-&assign('enabled_captcha', 1);
$result['html'] = $smarty-&fetch('library/member_info.lbi');
$result['error']
$result['content'] = $_LANG['login_failure_invalid'];
$_SESSION['login_fail']++;
if ($_SESSION['login_fail'] & 2)
$smarty-&assign('enabled_captcha', 1);
$result['html'] = $smarty-&fetch('library/member_info.lbi');
$result['error']
$result['content'] = $_LANG['login_failure'];
die($json-&encode($result));
并将user.php中if($action == 'register')条件中注册成功后进入会员中心的链接去掉:
/* 注册会员的处理 */
elseif ($action == 'act_register')
/* 增加是否关闭注册 */
if ($_CFG['shop_reg_closed'])
$smarty-&assign('action',
'register');
$smarty-&assign('shop_reg_closed', $_CFG['shop_reg_closed']);
$smarty-&display('user_passport.dwt');
include_once(ROOT_PATH . 'includes/lib_passport.php');
$username = isset($_POST['username']) ? trim($_POST['username']) : '';
$password = isset($_POST['password']) ? trim($_POST['password']) : '';
= isset($_POST['email']) ? trim($_POST['email']) : '';
$other['msn'] = isset($_POST['extend_field1']) ? $_POST['extend_field1'] : '';
$other['qq'] = isset($_POST['extend_field2']) ? $_POST['extend_field2'] : '';
$other['office_phone'] = isset($_POST['extend_field3']) ? $_POST['extend_field3'] : '';
$other['home_phone'] = isset($_POST['extend_field4']) ? $_POST['extend_field4'] : '';
$other['mobile_phone'] = isset($_POST['extend_field5']) ? $_POST['extend_field5'] : '';
$sel_question = empty($_POST['sel_question']) ? '' : compile_str($_POST['sel_question']);
$passwd_answer = isset($_POST['passwd_answer']) ? compile_str(trim($_POST['passwd_answer'])) : '';
$back_act = isset($_POST['back_act']) ? trim($_POST['back_act']) : '';
if(empty($_POST['agreement']))
show_message($_LANG['passport_js']['agreement']);
if (strlen($username) & 3)
show_message($_LANG['passport_js']['username_shorter']);
if (strlen($password) & 6)
show_message($_LANG['passport_js']['password_shorter']);
if (strpos($password, ' ') & 0)
show_message($_LANG['passwd_balnk']);
/* 验证码检查 */
if ((intval($_CFG['captcha']) & CAPTCHA_REGISTER) && gd_version() & 0)
if (empty($_POST['captcha']))
show_message($_LANG['invalid_captcha'], $_LANG['sign_up'], 'user.php?act=register', 'error');
/* 检查验证码 */
include_once('includes/cls_captcha.php');
$validator = new captcha();
if (!$validator-&check_word($_POST['captcha']))
show_message($_LANG['invalid_captcha'], $_LANG['sign_up'], 'user.php?act=register', 'error');
if (register($username, $password, $email, $other) !== false)
/*把新注册用户的扩展信息插入数据库*/
$sql = 'SELECT id FROM ' . $ecs-&table('reg_fields') . ' WHERE type = 0 AND display = 1 ORDER BY dis_order, id';
//读出所有自定义扩展字段的id
$fields_arr = $db-&getAll($sql);
$extend_field_str = '';
//生成扩展字段的内容字符串
foreach ($fields_arr AS $val)
$extend_field_index = 'extend_field' . $val['id'];
if(!empty($_POST[$extend_field_index]))
$temp_field_content = strlen($_POST[$extend_field_index]) & 100 ? mb_substr($_POST[$extend_field_index], 0, 99) : $_POST[$extend_field_index];
$extend_field_str .= & ('& . $_SESSION['user_id'] . &', '& . $val['id'] . &', '& . compile_str($temp_field_content) . &'),&;
$extend_field_str = substr($extend_field_str, 0, -1);
if ($extend_field_str)
//插入注册扩展数据
$sql = 'INSERT INTO '. $ecs-&table('reg_extend_info') . ' (`user_id`, `reg_field_id`, `content`) VALUES' . $extend_field_
$db-&query($sql);
/* 写入密码提示问题和答案 */
if (!empty($passwd_answer) && !empty($sel_question))
$sql = 'UPDATE ' . $ecs-&table('users') . & SET `passwd_question`='$sel_question', `passwd_answer`='$passwd_answer'
WHERE `user_id`='& . $_SESSION['user_id'] . &'&;
$db-&query($sql);
/* 判断是否需要自动发送注册邮件 */
if ($GLOBALS['_CFG']['member_email_validate'] && $GLOBALS['_CFG']['send_verify_email'])
send_regiter_hash($_SESSION['user_id']);
$ucdata = empty($user-&ucdata)? && : $user-&
show_message(sprintf($_LANG['register_success'], $username . $ucdata), array($_LANG['back_up_page']), array($back_act), 'info');
$err-&show($_LANG['sign_up'], 'user.php?act=register');
修改flow.php中的:
if (!empty($_POST['act']) && $_POST['act'] == 'signin')
$captcha = intval($_CFG['captcha']);
if (($captcha & CAPTCHA_LOGIN) && (!($captcha & CAPTCHA_LOGIN_FAIL) || (($captcha & CAPTCHA_LOGIN_FAIL) && $_SESSION['login_fail'] & 2)) && gd_version() & 0)
if (empty($_POST['captcha']))
show_message($_LANG['invalid_captcha']);
/* 检查验证码 */
include_once('includes/cls_captcha.php');
$validator = new captcha();
$validator-&session_word = 'captcha_login';
if (!$validator-&check_word($_POST['captcha']))
show_message($_LANG['invalid_captcha']);
$rt = $user-&login($_POST['username'], $_POST['password'],isset($_POST['remember']));
if ($rt & 0)
update_user_info();
//更新用户信息
recalculate_price(); // 重新计算购物车中的商品价格
/* 检查购物车中是否有商品 没有商品则跳转到首页 */
$sql = &SELECT COUNT(*) FROM & . $ecs-&table('cart') . & WHERE session_id = '& . SESS_ID . &' &;
if ($db-&getOne($sql) & 0)
ecs_header(&Location: flow.php?step=checkout\n&);
ecs_header(&Location:index.php\n&);
else if ($rt == -1)
show_message($_LANG['login_failure_invalid'], $_LANG['relogin_lnk'], 'user.php', 'error');
$_SESSION['login_fail']++;
show_message($_LANG['signin_failed'], '', 'flow.php?step=login');
文件include/lib_passport.php中的一下内容注释掉(这样用户注册之后不会自动登录):
//注册成功
/* 设置成登录状态 */
//We close the automatically logon feature. The account needs to be validated by the admin
//$GLOBALS['user']-&set_session($username);
//$GLOBALS['user']-&set_cookie($username);
【3】在languages/zh_cn/user.php中增加:
$_LANG['login_failure_invalid'] = '需管理员确认身份之后才能登陆';
【4】在后台增加用户是否激活的管理
在文件languages/zh_cn/admin/users.php中增加:$_LANG['invalid_is_validated'] = '只能输入0或1。0为无效,1为有效';
在admin/users.php中增加下面的函数,用来处理管理员编辑账号是否被验证标记:
/*------------------------------------------------------ */
//-- 编辑会员有效性
/*------------------------------------------------------ */
elseif ($_REQUEST['act'] == 'edit_is_validated')
/* 检查权限 */
check_authz_json('users_manage');
$id = empty($_REQUEST['id']) ? 0 : intval($_REQUEST['id']);
$is_validated = empty($_REQUEST['val']) ? '' : json_str_iconv(trim($_REQUEST['val']));
$users =& init_users();
$sql = &SELECT user_name, email FROM & . $ecs-&table('users') . & WHERE user_id = '$id'&;
$row = $db-&GetRow($sql);
$username = $row[&user_name&];
$email = $row[&email&];
if (($is_validated == 0) || ($is_validated == 1))
if ($users-&edit_user(array('username'=&$username, 'email'=&$email, 'is_validated'=&$is_validated)))
admin_log(addslashes($username), 'edit', 'users');
make_json_result(stripcslashes($is_validated));
$msg = ($users-&error == ERR_EMAIL_EXISTS) ? $GLOBALS['_LANG']['email_exists'] : $GLOBALS['_LANG']['edit_user_failed'];
make_json_error($msg);
make_json_error($GLOBALS['_LANG']['invalid_is_validated']);
相应的修改admin/templates/users_list.htm,是的管理员可以编辑is_validated状态:
&td align=&center&&{if $user.is_validated} &img src=&images/yes.gif&& {else} &img src=&images/no.gif&& {/if}&/td&
&td align=&center&&&span onclick=&listTable.edit(this, 'edit_is_validated', {$user.user_id})&&{$user.is_validated}&/span&&/td&
已发表评论数()
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
排版有问题
没有分页内容
视频无法显示
图片无法显示请问微星3670(英特尔4 Series芯片组-ICH10DO)主板,可以拓展哪些内存条?_百度知道
为您推荐:
内存条的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁http:///question/.html&from=emailmsg 我一直很在意长安大学是211工程,放弃211_百度知道
长安大学是直属教育部且省部共建的211工程大学,这一点在你将来无论是就业还是深造(包括出国)方面都比省属、非211学校有优势。你提到的这几个学科确实不属于长安大学最具优势的专业,但是这几个专业在长安大学依然保持有鲜明的特色,而且发展势头很好。要知道这几个专业基本上是每个工科学校都开设的专业,而且不乏非常知名的老牌名校,一般省属院校的这类专业如果没有自己的特色,将来在就业上怎么和其他名校毕业生竞争呢?像长安大学这样有特色有行业背景的话则有很大优势。祝好运!
你是想学什么专业呢?你要是想学水利的话就去理工大,学文科类的话都差不多,要是学别的什么还是长安大吧
链接里的那个那个人就一个长大的黑子。你百度一下xautchen就知道,陕西本地人都知道长大好,理科分数线陕西第四。而且非211很多公司不收简历,你以后就知道了
其他类似问题
为您推荐:
长安大学的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁}

我要回帖

更多关于 far away from home 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信