php用戶注冊(cè)登錄系統(tǒng)之注冊(cè)處理頁(yè)面
注冊(cè)處理頁(yè)面
流程圖如下:
詳細(xì)代碼如下:
<?php session_start(); //注冊(cè)處理界面 regcheck.php if(isset($_POST["hidden"]) && $_POST["hidden"] == "hidden") { $user = trim($_POST["username"]);//trim()函數(shù)移除字符串兩側(cè)的空白字符 $psw = md5(trim($_POST["userpwd"])); $psw_confirm = md5(trim($_POST["confirm"])); $code = $_POST["code"]; if($user == "" || $psw == "" || $psw_confirm == "") { echo "<script>alert('請(qǐng)確認(rèn)信息完整性!'); history.go(-1);</script>"; } else if($code != $_SESSION[' ver_code']){ echo "<script>alert('驗(yàn)證碼不正確,請(qǐng)重新輸入!'); history.go(-1);</script>"; } else { if($psw == $psw_confirm) { $conn = mysqli_connect("localhost","root","root"); //連接數(shù)據(jù)庫(kù),帳號(hào)密碼為自己數(shù)據(jù)庫(kù)的帳號(hào)密碼 if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,"userdb"); //選擇數(shù)據(jù)庫(kù) mysqli_set_charset($conn,'utf8'); //設(shè)定字符集 $sql = "select username from user where username = '$user'"; //SQL語(yǔ)句 $result = mysqli_query($conn,$sql); //執(zhí)行SQL語(yǔ)句 $num = mysqli_num_rows($result); //統(tǒng)計(jì)執(zhí)行結(jié)果影響的行數(shù) if($num) //如果已經(jīng)存在該用戶 { echo "<script>alert('用戶名已存在'); history.go(-1);</script>"; } else //不存在當(dāng)前注冊(cè)用戶名稱 { $ip=ip2long($_SERVER['REMOTE_ADDR']); // 把ip地址轉(zhuǎn)換成整型 $time=time(); $sql_insert = "insert into `user` (`username`,`userpwd`,`createtime`,`createip`) values('" . $user . "','" . $psw ."','".$time."','".$ip."')"; $res_insert = mysqli_query($conn,$sql_insert); if($res_insert) { echo "<script>alert('注冊(cè)成功!');window.location.href='login.php';</script>"; } else { echo "<script>alert('系統(tǒng)繁忙,請(qǐng)稍候!'); history.go(-1);</script>"; } } } else { echo "<script>alert('密碼不一致!'); history.go(-1);</script>"; } } } else { echo "<script>alert('提交未成功!');</script>"; } ?>
代碼解釋:
當(dāng)在注冊(cè)頁(yè)面點(diǎn)擊注冊(cè)時(shí)進(jìn)入注冊(cè)處理頁(yè)面
判斷post方式傳過來的$_POST["hidden"]是否存在,不存在則提示提交未成功,返回注冊(cè)界面,存在則繼續(xù)。
將傳過來的值獲取到(利用trim()函數(shù)過濾空白字符,密碼使用md5()函數(shù)加密),然后判斷是否為空,為空則彈出提示,返回注冊(cè)界面,不為空則繼續(xù)
判斷post方式傳遞過來的驗(yàn)證碼值與之前存在session里面的驗(yàn)證碼值是否相等,不相等則提示驗(yàn)證碼不正確,返回注冊(cè)頁(yè)面,相等則繼續(xù)執(zhí)行
判斷傳過來的密碼和確認(rèn)密碼是否相等,不相等則提示密碼不一致,相等則繼續(xù)
連接數(shù)據(jù)庫(kù)、選擇我們創(chuàng)建的數(shù)據(jù)庫(kù)、設(shè)定字符集、通過用戶名查詢數(shù)據(jù)庫(kù),有結(jié)果則提示用戶名存在,返回注冊(cè)頁(yè)面,沒有結(jié)果則執(zhí)行數(shù)據(jù)庫(kù)插入語(yǔ)句,插入數(shù)據(jù)(插入數(shù)據(jù)庫(kù)的字段增加了注冊(cè)時(shí)間以及注冊(cè)是使用的ip號(hào))
通過插入語(yǔ)句的返回值,判斷是否插入成功,不成功則返回注冊(cè)頁(yè)面重新注冊(cè),成功則提示注冊(cè)成功,跳轉(zhuǎn)至登錄頁(yè)面