php中傳統驗證的執行個體教程

來源:互聯網
上載者:User
  PHP(超文本前置處理器)可用於小型網站的搭建,當使用者需要註冊登入是,需要與後台資料庫進行匹配合格才能註冊和登入,傳統的方式步驟繁多,需要先串連資料庫再用sql語句進行插入。

<?phpheader("Content-type: text/html; charset=utf-8");$conn =mysqli_connect("localhost","root","");if (!$conn){      echo "<script>alert('串連失敗!');history.go(-1);</script>";    } mysqli_select_db($conn,"liuyanban");mysqli_query($conn,'SET NAMES utf8');$password=$_POST['password'];$username=$_POST['username'];$face="yellow.png";$result=mysqli_query($conn,"SELECT username from user1 where username = '$username'");  $a=mysqli_num_rows($result);if($a){             echo "<script language=javascript>alert('使用者名稱已存在!');location.href='reg.html'</script>";}else{            $sql = mysqli_query($conn,"INSERT INTO user1(username,password,face)VALUES('1' ,'2','yellow.png')");      if($sql)      {           echo "<script language=javascript>alert('註冊成功!');location.href='login.html'</script>";      }      else  {echo "<script>alert('註冊失敗!');location.href='reg.html'</script>";      }}?>

    以上是一個原生php註冊執行個體,需要用mysqli_select_db()、mysqli_query()等函數先進行資料庫連接,同時只有通過mysqli_query()函數才能執行sql語句,最後通過if語句進行類別判斷和其他一系列限制操作。在原生php階段實用性比較高,便於理解,過程很清晰,但是在一個項目工程中用這樣的語句代碼編寫不便於相互交流,非常繁重複雜,所以需要運用thinkphp架構搭建項目才能使編碼人員相互可以對接,也便於後期代碼的修改和功能的添加。那麼這裡就不贅述架構詳細了,所以在thinkphp架構下mvc模式中運用控制器(C)和模型(M)進行表單自動驗證:

控制器中使用表單靜態驗證:

 public function doreg(){              $data=D('user');              $d=array();                  $d['username']=$_POST['username'];                  $d['password']=$_POST['password'];                  $d['time']=date("Y-m-d H:i:s",time());                  $d['qq']=$_POST['qq'];                  $d['class']=$_POST['class'];                  $mess=$data->create();                  if (!$mess){       //表單自動驗證$this->error($data->getError(),'Member/member',3);                  }else{$data->add();echo "<script language=javascript>alert('註冊成功!');location.href='member.html'</script>";                      }                  }

模板中列出需要驗證的欄位:

<?php namespace Home\Model;use Think\Model;class UserModel extends Model{       protected $tableName ='user';     protected $_validate=array(                                  //進行靜態驗證          //array(驗證欄位1,驗證規則,錯誤提示,[驗證條件,附加規則,驗證時間]),array('username','require','使用者名稱必填!'),array('username','','帳號名稱已經存在!',0,'unique',1),array('repassword','password','兩次密碼不一致!',0,'confirm'),array('qq','require','qq必填!'),array('qq','','帳號名稱已經存在!',0,'unique',1),array('class','require','班級必填!'),array('j_verify','require','驗證碼必須!'),);             }?>

這裡以註冊為例,登入類似,若驗證錯誤,則運用$this->error($data->getError(),'Member/member',3);表單靜態驗證使用很方便。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.