PHP 登錄注冊之注冊
前面的課程我們將到了點擊注冊頁面,跳轉(zhuǎn)到reg.php
表單提交到regin.php 文件
下面我們來看一下注冊的步驟
連接數(shù)據(jù)庫
獲取表單信息
判斷表單是否為空
編寫sql語句,向數(shù)據(jù)庫添加內(nèi)容
判斷注冊是否成功
注意:這里我們需要注意的是第三步,當(dāng)數(shù)據(jù)庫存在表單提交的信息時,這時就不應(yīng)該能夠注冊成功,講的通俗點,例如 張三 已經(jīng)注冊過,當(dāng)你在使用 張三 這個用戶名時,我們就應(yīng)該給出該用戶名已經(jīng)被注冊的信息
下面我們就來詳細(xì)講解,我們先來看一下流程圖:
連接數(shù)據(jù)庫,和注冊頁面是一樣的,引入我們conn.php 這個文件即可
獲取表單信息,我們可以做一些過濾的操作,比如去除空格 trim()? 函數(shù)? 對密碼進(jìn)行加密,使用md5()
代碼去下:
??? $name=trim($_POST['username']);
????$password=$_POST['password'];
trim函數(shù),過濾空格,如果不加,我們在用戶名后面添加很多空格,提交表單,打開firebug調(diào)試工具,我們可以到輸入的用戶名后面會有很多空格,使用trim函數(shù),我們可以把表單中空格給過濾掉
如下圖所示
沒使用trim()函數(shù) 提交之后我們可以看到有很多空格,
使用之后效果如下
md5()加密 輸出后大家會看到一段32位的密文
用戶名張三,密碼123456,點擊注冊
出現(xiàn)這樣的密文,這樣對我們賬戶的安全性有一定的作用
下面我們要判斷用戶名是否被注冊過
先獲取表單的信息,然后去數(shù)據(jù)庫表中查詢是否存在
代碼如下
??? $sql?=?"select?*?from?user?where?username='$name'";
????$info?=?mysql_query($sql);
????$res?=?mysql_num_rows($info);
然后對$res 進(jìn)行判斷,如果存在,就提示用戶已被注冊,跳轉(zhuǎn)到注冊頁面
沒有則進(jìn)行注冊操作
在做注冊操作之前,我們還要判斷表單的信息是不是空,是空則返回到注冊頁面,給出提示信息
代碼如下:
if(empty($name)){
?? ??? ?echo "<script>alert('用戶名不能為空');location.href='reg.php';</script>";
?? ?}else if(empty($password)){
?? ??? ?echo "<script>alert('密碼不能為空');location.href='reg.php';</script>";
? }else{
?? //注冊操作
}
注冊操作代碼如下:
????????$sql1?="insert?into?user(username,password)?values('".$name."','"?.$password."')";
????????$result?=?mysql_query($sql1);
????????if($result){
?????????????echo?"<script>alert('注冊成功')</script>";
????????}else{
?????????????echo?"<script>alert('注冊失敗')</script>";
????????}
完整源碼如下:
<?php require_once("conn.php");//首先鏈接數(shù)據(jù)庫 $name=trim($_POST['username']); //trim函數(shù),過濾空格,如果不加,我們在用戶名后面添加很多空格,提交表單,打開firebug //調(diào)試工具,我們可以到輸入的用戶名后面會有很多空格,使用trim函數(shù),我們可以把表單中空格給過濾掉 $password=$_POST['password']; $sql = "select * from user where username='$name'"; $info = mysql_query($sql); $res = mysql_num_rows($info); if(empty($name)){ echo "<script>alert('用戶名不能為空');location.href='reg.php';</script>"; }else if(empty($password)){ echo "<script>alert('密碼不能為空');location.href='reg.php';</script>"; }else{ if($res){ echo "<script>alert('用戶名已存在');location.href='reg.php';</script>"; }else{ $sql1 ="insert into user(username,password) values('".$name."','" .md5($password)."')"; $result = mysql_query($sql1); if($result){ echo "<script>alert('注冊成功')</script>"; }else{ echo "<script>alert('注冊失敗')</script>"; } } } ?>
這樣我們一個簡單的登錄注冊就已經(jīng)完成了,大家去新建幾個文件,把代碼復(fù)制到本地可以測試下