Skip to content

Commit

Permalink
用户注册 --- 完善注册流程
Browse files Browse the repository at this point in the history
  • Loading branch information
duanyong committed Mar 1, 2011
1 parent 924c5ce commit 885201d
Show file tree
Hide file tree
Showing 6 changed files with 108 additions and 109 deletions.
6 changes: 3 additions & 3 deletions db/devdb.user.php
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
//
////////////////////////////////////////////////////////////////////////////////

function a_user_by_email($email) {
if (a_bad_email($email)) {
function a_user_by_mobile($mobile) {
if (a_bad_mobile($mobile)) {
return a_log();
}

return a_db_sql("select * from user where `email`='{$email}' limit 1;");
return a_db_query("select * from user where `mobile`='{$mobile}' limit 1;");
}

80 changes: 61 additions & 19 deletions devinc.bad.php
Original file line number Diff line number Diff line change
Expand Up @@ -35,27 +35,67 @@
////////////////////////////////////////////////////////////////////////////////

function a_bad_id($id, &$var=false) {
$var = $id;
if(!is_numeric($id)
|| ( $id = intval($id) ) <= 0
) {
return true;
}

if ($var !== false) {
$var = $id;
}

return false;
}


function a_bad_0id($id, &$var=false) {
if(!is_numeric($id)
|| ( $id = intval($id) ) < 0
) {
return true;
}

if ($var !== false) {
$var = $id;
}

return false;
}


function a_bad_string($str, &$var=false) {
$var = $str;
if (!is_string($str)
|| empty($str)
) {
return true;
}

if ($var !== false) {
$var = $str;
}


return false;
}


function a_bad_0string($str, &$var=false) {
$var = $str;

if (!is_string($str)) {
return true;
}

if ($var !== false) {
$var = $str;
}

return false;
}

function a_bad_array($arr, &$var=false) {
if (!is_array($arr)) {
if (!is_array($arr)
|| empty($arr)
) {
return true;
}

Expand All @@ -74,25 +114,21 @@ function a_bad_table_id($table, $id, &$var=false) {
return true;
}

if (false === ( $data = a_db_query($table, $id))) {
if (false === ( $data = a_db($table, $id))) {
// 数据库发生错误,写日志
a_warn();

return true;
}

if ($data["status"] < 0) {

return true;
}

if ($var !== false) {
$var = $data;
}

return true;
return false;
}


function a_bad_file($file) {
return !( file_exists($file) && is_readable($file) );
}
Expand All @@ -111,8 +147,16 @@ function a_bad_email($email, &$var=false) {
}


function a_bad_mobile($mobile, &$var) {
$var = $mobile;
function a_bad_mobile($mobile, &$var=false) {
if (a_bad_id($mobile)
|| strlen($mobile) !== 11
) {
return true;
}

if ($var !== false) {
$var = $mobile;
}

return false;
}
Expand All @@ -139,13 +183,11 @@ function a_bad_ajax() {
}


function a_bad_user($uid=false, &$user=false) {
if ($uid === false) {
// 从浏览器的Cookie中取
function a_bad_user($uid, &$user=false) {
if (a_bad_id($uid)) {
return a_log();
}

if (a_bad_id($uid)) {}

// 可能没有数据
if (a_bad_table_id("user", $uid, $user) ) {

Expand Down
Empty file added js/dev.base.cookie.js
Empty file.
46 changes: 27 additions & 19 deletions reg.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,67 +2,77 @@
/**
* 提供用户注册的程序
*
* /db/devdb.user.php
* /user/devapi.user.php
*
* */

require_once(__DIR__ . "/devinc.all.php");
require_once(ROOT_DIR . "/db/devdb.user.php");
require_once(ROOT_DIR . "/user/devapi.user.php");


///
// 登录逻辑的必要值检查(邮箱、密码)
if (a_bad_ajax()) {
//非正常提交,直接返回403

return false;
}

global $arg;

$arg = array();

if (a_bad_mobile($_POST["mobile"], $mobile)) {
$arg["err"]["mobile"] = "邮箱做为登录账号,必须填写。";
$arg["mobile"] = "邮箱做为登录账号,必须填写。";
}

if (a_bad_string($_POST["password"], $password)) {
$arg["err"]["password"] = "密码是保护账号的基本手段,必须填写。";
$arg["password"] = "密码是保护账号的基本手段,必须填写。";
}

if (a_bad_0string($_POST["email"], $email)) {
$arg["err"]["email"] = "没有邮箱地址";
if (a_bad_0id($_POST["sex"], $sex)) {
$arg["sex"] = "请选择性别";
}


//取值完毕
// 取值完毕

//检查数据库中的值是否存在
if (false !== ( $user = a_user_by_email($email) )) {
//已经有用户注册过了
if (false === ( $user = a_user_by_mobile($mobile) )) {
// 数据库错误
// 已经有用户注册过了

$arg["from"] = "对不起,服务器和她女朋友吵架了,能否帮助安抚下,谢啦。";
}

$arg["err"]["email"] = "您输入的用户名已经被注册。";
if (!a_bad_array($user)) {
// 用户存在,检查是否是过期的用户

$arg["mobile"] = "您提供的手机号码有问题,请联系管理员。";
}

if (!a_bad_array($arg["err"])) {
//有错误发生,返回错误

return a_action_done();
if (!empty($arg)) {
// 有错误发生,返回错误

exit(a_action_done());
}



//准备存储新用户
// 准备存储新用户
$user = array(
"email" => $email,
"sex" => $sex === 1 ? 1 : 0,
"mobile" => $mobile,
"password" => md5($password),
);

echo var_export($arg, true);

if (false === (a_user_reg($user) )) {
//数据存储发生错误,提示用户

//报告错误
$arg["err"]["db"] = "对不起,服务器和她女朋友吵架了,能否帮助安抚下,谢啦。";
$arg["db"] = "对不起,服务器和她女朋友吵架了,能否帮助安抚下,谢啦。";

exit(a_action_done());
}
Expand All @@ -71,6 +81,4 @@
//一切正常,可以注册
$arg["err"] = 0;

echo var_export($arg, true);

exit(a_action_done());
9 changes: 6 additions & 3 deletions reg.shtml
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,12 @@
<div id="main">
<form action="/reg.php" method="post">
<ul>
<li><label>邮箱地址:</label><input type="text" name="email" value="可以使用常用的邮箱" /></li>
<li><label>登录密码:</label><input type="text" name="password" value="密码" /></li>
<li><label>手机号码:</label><input type="text" name="mobile" value="11位的手机号码" /></li>
<label>手机号码:</label><input type="text" name="mobile" value="11位的手机号码" maxlength="11" /><br />
<label>登录密码:</label><input type="text" name="password" value="密码" maxlength="16" /><br />
<label>性别:</label>
<input type="radio" name="sex" value="1" /><label>男</label>
<input type="radio" name="sex" value="0" /><label>女</label><br />

<input type="submit" value="注册" />
</ul>
</form>
Expand Down
76 changes: 11 additions & 65 deletions user/devapi.user.php
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@

/**
* &user = array(
* "mobile" => "mobile",
* "sex" => true,
* "mobile" => "15888888888",
* "password" => "duanyong",
* )
*
Expand All @@ -20,7 +21,12 @@ function a_user_reg(&$user=false) {
return a_log();
}

$data = array();
// 表单的数据项
$data = array(
"sex" => "",
"mobile" => "",
"password" => "",
);

//检查必填项(手机号码、密码)和可选项
if (a_bad_mobile($user["mobile"], $data["mobile"])) {
Expand All @@ -37,23 +43,13 @@ function a_user_reg(&$user=false) {
}


// 检查邮箱地址
if (a_bad_0string($user["email"], $email)) {
// 检查性别
if (a_bad_0id($user["sex"], $data["sex"])) {
// 没有邮箱地址

return false;
}

if (!empty($email)) {
if (a_bad_email($email)) {
// 邮箱地址格式错误

return false;
}

$data["email"] = $email;
}


//用户请求时间
$data["ctime"] = a_action_timestamp();
Expand All @@ -70,55 +66,5 @@ function a_user_reg(&$user=false) {
}

//插入成功
return true;
}


function a_user_diary(&$diary=false) {
if (a_bad_array($diary)) {
return a_log();
}

$data = array();

// 检查日记必要的字段
if (a_bad_id($diary["uid"], $data["uid"])) {
// 没有用户标识

return false;
}

// 用户是否注册或者已删除
if (a_bad_user($data["uid"])) {
// 用户不存在且已经被删除

return false;
}


if (a_bad_string($diary["content"], $data["content"])) {
// 没有内容,空的也不行

return false;
}


// TODO: 日记样式

// 发布时间
$data["ctime"] = a_action_time();


if (false === a_db("diary:insert", $data)
|| a_bad_id($data["did"])
) {
//插入失败

return false;
}

//插入成功
return true;
return $data;
}


0 comments on commit 885201d

Please sign in to comment.