PHP用戶開發註冊模組之PHP...LOGIN

PHP用戶開發註冊模組之PHP頁面

前面介紹了使用者註冊的主要功能,本頁就透過PHP程式碼來實現這些功能。

我們用POST方式來取得資料。

<?php
$username = $_POST['username']; //注册的用户名
$password = $_POST['password'];  //注册密码
$confirm = $_POST['confirm'];  //确认密码
$email = $_POST['email'];  //邮箱
$code = $_POST['code'];   //验证码
?>

繼續連接我們已經建立的資料庫和表格

<?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);
?>

我們需要對輸入的使用者名稱和郵件信箱進行正規判斷

<?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>";    
     //判断邮箱格式是否合法
}
?>

這裡與使用者登入最大的不同在於如果使用者名稱已經被其他使用者註冊,您將無法在使用這個使用者名稱。

需要先讀取資料庫中已經存在的使用者名稱數據,然後進行判斷。

<?php
if(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'")))
{     
    echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>";
    // 判断用户名是否已经被注册
}
?>

完整的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')";
    //插入数据库
    if(!(mysqli_query($link,$sql))){
      echo "<script>alert('数据插入失败');window.location.href='zhuce.html'</script>";
    }else{
      echo "<script>alert('注册成功!)</script>";
    }
  }
?>

進入註冊頁面,填好各項正確的數據,然後開啟資料庫就會發現您剛剛新增的資料已經存在。

2.png

例如:這裡我們增加了一個使用者名稱 為 sell ,  密碼和確認密碼為12345,郵箱為123@www.com的使用者。

註:本節課程只是簡單示範使用者註冊,其程式碼僅供學習參考,不可直接用於專案。

下一節
<?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')"; //插入数据库 if(!(mysqli_query($link,$sql))){ echo "<script>alert('数据插入失败');window.location.href='zhuce.html'</script>"; }else{ echo "<script>alert('注册成功!)</script>"; } } ?>
章節課件