| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
再来看另一段有趣的代码,用户怎样才能安全地改变他们的email地址呢?他们可以在任何时候改变email地址,但是要进行确认。
<?php
网管联盟bitsCN_com
function user_change_email ($password1,$new_email,$user_name) { 网管下载dl.bitscn.com
global $feedback,$hidden_hash_var;
网管u家u.bitsCN.com
if (validate_email($new_email)) { 网管联盟bitsCN@com
$hash=md5($new_email.$hidden_hash_var);
file://改变数据库中确认用的无序码值,但不改变email 网管联盟bitsCN_com
file://发出一个带有新认证码的确认email 中国网管联盟bitsCN.com
$user_name=strtolower($user_name); 网管网www_bitscn_com
$password1=strtolower($password1);
网管下载dl.bitscn.com
$sql=\"UPDATE user SET confirm_hash='$hash' WHERE user_name='$user_name' AND password='\". md5($password1) .\"'\";
网管网www.bitscn.com
$result=db_query($sql);
if (!$result || db_affected_rows($result) < 1) {
网管u家u.bitscn@com
$feedback .= ' ERROR - Incorrect User Name Or Password ';
return false;
} else {
$feedback .= ' Confirmation Sent ';
网管u家u.bitscn@com
user_send_confirm_email($new_email,$hash); 中国网管联盟bitsCN.com
return true; 中国网管联盟bitsCN.com
}
网管联盟bitsCN@com
} else { 网管u家u.bitsCN.com
$feedback .= ' New Email Address Appears Invalid ';
return false;
}
}
网管论坛bbs_bitsCN_com
function user_confirm($hash,$email) {
/*
网管网www.bitscn.com
用户点击认证email的相关连接时,连到一个确认的页面,该页面会调用这个函数, 网管u家u.bitsCN.com
*/
网管论坛bbs_bitsCN_com
global $feedback,$hidden_hash_var;
中国网管论坛bbs.bitsCN.com
file://verify that they didn't tamper with the email address
中国网管联盟bitsCN.com
$new_hash=md5($email.$hidden_hash_var); 网管下载dl.bitscn.com
if ($new_hash && ($new_hash==$hash)) {
file://在数据库中找出这个记录 网管联盟bitsCN@com
$sql=\"SELECT * FROM user WHERE confirm_hash='$hash'\"; 中国网管论坛bbs.bitsCN.com
$result=db_query($sql);
网管u家u.bitsCN.com
if (!$result || db_numrows($result) < 1) { 网管联盟bitsCN@com
$feedback .= ' ERROR - Hash Not Found '; 网管网www.bitscn.com
return false;
} else { 网管论坛bbs_bitsCN_com
file://确认email,并且设置帐号为已经激活 网管论坛bbs_bitsCN_com
$feedback .= ' User Account Updated - You Are Now Logged In '; 网管u家u.bitscn@com
user_set_tokens(db_result($result,0,'user_name')); 网管下载dl.bitscn.com
$sql=\"UPDATE user SET email='$email',is_confirmed='1' WHERE confirm_hash='$hash'\";
$result=db_query($sql); 网管u家u.bitscn@com
return true;
}
网管bitscn_com
} else {
$feedback .= ' HASH INVALID - UPDATE FAILED ';
return false;
} 网管网www.bitscn.com
} 网管联盟bitsCN_com
function user_send_confirm_email($email,$hash) { 网管下载dl.bitscn.com
/* 网管u家u.bitsCN.com
这个函数在首次注册或者改变email地址时使用 网管联盟bitsCN@com
*/ 中国网管论坛bbs.bitsCN.com
$message = \"Thank You For Registering at Company.com\".
网管u家u.bitsCN.com
\"nSimply follow this link to confirm your registration: \".
\"nnhttp://www.company.com/account/confirm.php?hash=$hash&email=\". urlencode($email). \"nnOnce you confirm, you can use the services on PHPBuilder.\";
mail ($email,'Registration Confirmation',$message,'From: noreply@company.com'); 网管联盟bitsCN@com
}
网管联盟bitsCN@com
?>
网管联盟bitsCN@com
|
2
|
评论加载中…