PHP用戶開發(fā)註冊模組之PHP頁面
前面介紹了使用者註冊的主要功能,本頁就透過PHP程式碼來實現(xiàn)這些功能。
我們用POST方式來取得資料。
<?php $username = $_POST['username']; //注冊的用戶名 $password = $_POST['password']; //注冊密碼 $confirm = $_POST['confirm']; //確認(rèn)密碼 $email = $_POST['email']; //郵箱 $code = $_POST['code']; //驗證碼 ?>
繼續(xù)連接我們已經(jīng)建立的資料庫和表格
<?php $link = mysqli_connect('localhost','root','root','test'); if (!$link) { die("連接失敗:".mysqli_connect_error()); } $sql = "select * from login"; $result = mysqli_query($link, $sql); $rows = mysqli_fetch_array($result); ?>
我們需要對輸入的使用者名稱和郵件信箱進(jìn)行正規(guī)判斷
<?php if ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用戶名至少3位且不含非法字符!重新填寫');window.location.href='zhuce'</script>"; //判斷用戶名長度和非法字符 } if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('郵箱不合法!重新填寫');window.location.href='zhuce.html'</script>"; //判斷郵箱格式是否合法 } ?>
這裡與使用者登入最大的不同在於如果使用者名稱已經(jīng)被其他使用者註冊,您將無法在使用這個使用者名稱。
需要先讀取資料庫中已經(jīng)存在的使用者名稱數(shù)據(jù),然後進(jìn)行判斷。
<?php if(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))) { echo "<script>alert('用戶名已存在');window.location.href='zhuce.html'</script>"; // 判斷用戶名是否已經(jīng)被注冊 } ?>
完整的zhuce.php檔案程式碼:
<?php session_start(); header("Content-type:text/html;charset=utf-8"); $link = mysqli_connect('localhost','root','root','test'); if (!$link) { die("連接失敗:".mysqli_connect_error()); } $username = $_POST['username']; $password = $_POST['password']; $confirm = $_POST['confirm']; $email = $_POST['email']; $code = $_POST['code']; if($username == "" || $password == "" || $confirm == "" || $email == "" || $code == "") { echo "<script>alert('信息不能為空!重新填寫');window.location.href='zhuce.html'</script>"; } elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用戶名至少3位且不含非法字符!重新填寫');window.location.href='zhuce'</script>"; //判斷用戶名長度 }elseif(strlen($password) < 5){ echo "<script>alert('密碼至少5位!重新填寫');window.location.href='zhuce.html'</script>"; //判斷密碼長度 }elseif($password != $confirm) { echo "<script>alert('兩次密碼不相同!重新填寫');window.location.href='zhuce.html'</script>"; //檢測兩次輸入密碼是否相同 } elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('郵箱不合法!重新填寫');window.location.href='zhuce.html'</script>"; //判斷郵箱格式是否合法 } elseif($code != $_SESSION['authcode']) { echo "<script>alert('驗證碼錯誤!重新填寫');window.location.href='zhuce.html'</script>"; //判斷驗證碼是否填寫正確 } elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){ echo "<script>alert('用戶名已存在');window.location.href='zhuce.html'</script>"; } else{ $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')"; //插入數(shù)據(jù)庫 if(!(mysqli_query($link,$sql))){ echo "<script>alert('數(shù)據(jù)插入失敗');window.location.href='zhuce.html'</script>"; }else{ echo "<script>alert('注冊成功!)</script>"; } } ?>
進(jìn)入註冊頁面,填好各項正確的數(shù)據(jù),然後開啟資料庫就會發(fā)現(xiàn)您剛剛新增的資料已經(jīng)存在。
例如:這裡我們增加了一個使用者名稱 為 sell , ?密碼和確認(rèn)密碼為12345,郵箱為123@www.com的使用者。
註:本節(jié)課程只是簡單示範(fàn)使用者註冊,其程式碼僅供學(xué)習(xí)參考,不可直接用於專案。