本文主要為大家帶來一篇ubutu 16.04環境下,PHP與mysql資料庫,網頁登入驗證執行個體講解。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,希望能協助到大家。
正好最近的網域名稱備案通過了,興起就突然想做一個網頁,雖然之前去備案網域名稱也是有這個目的。
問過幾個人,說用linux上用PHP搭建網站很簡單,就試著做了一個,這裡主要說一下登入驗證相關的部分;
首相準備幾個檔案,主要是index.php、conn.php、data.php以及login.php;
login.php 主要是登入過程中的資料對比部分;其中include ('conn.php')內容在下面有說。
<?phpif(!isset($_POST['submit'])){ exit('login in error.');}$username = htmlspecialchars($_POST['username']);$password = MD5($_POST['password']);include('conn.php');echo"$password";$check_query = mysqli_query($result,"select USERID from USERINFO where EMAIL='$username' and PASSWORD='$password' limit 1");if($ret = mysqli_fetch_array($check_query)){ echo'connect true.';}else{ echo'connect false';}?>
另外要注意的是:關於$_POST針對的是form中的method =“post”中的內容。
因為裡面用到MD5加密的方式,所以說一下,在後台資料庫加密的時候也需要用到MD5加密的方式update資料,具體方式如下:
UPDATE USERINFO SET PASSWORD = md5('root') WHERE USERID = 1000;
其中的表格以及具體查詢位置根據個人資料庫而定。
conn.php 主要是跟mysql資料庫連接相關的操作,分為資料庫連接,以及資料庫選擇部分(注意資料庫連接的傳回值取值,不要隨便起,後邊引用的時候是用得著的。)
<?phptry{$result = mysqli_connect('localhost','root','root');mysqli_select_db($result,'WEBDATAS');}catch(Exception $e){ echo $e->message; exit;}if(!$result){ return false;}echo "ok\n";?>
剩下的主要是index.php 該檔案是首頁相關了,我只把登入相關的部分拿出來說明一下(這裡用到的是boostrap中的模板,有興趣的可以百度一下boostrap)
<?phpsession_start();include_once('data.php');$handle = db_connect();if(!$handle){ echo 'Did not access to the database';}else{ echo'connect success';}?>
其中包含的data.php登入部分如下:
<p class="modal fade" tabindex="-1" role="dialog" id="login"> <p class="modal-dialog" role="document"> <p class="modal-content"> <p class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button> <h3 class="modal-title">ログイン</h3> </p> <p class="modal-body"> <form class="form-signin" action="login.php" method = "post"> <h4 class="form-signin-heading">利用者名 パスワード 入力</h4> <label for="inputEmail" class="sr-only">利用者名</label> <input type="email" name="username" id="inputEmail" class="form-control" placeholder="利用者名を入力" required autofocus> <label for="inputPassword" class="sr-only">パスワード</label> <input type="password" name="password" id="inputPassword" class="form-control" placeholder="パスワード" required> <p class="checkbox"> <label> <input type="checkbox" value="remember-me"> ログイン狀態を保持 </label> </p> <button class="btn btn-lg btn-primary btn-block" type="submit" name="submit">ログイン</button> </form> </p> <p class="modal-footer"> <button type="button" class="btn btn-default" data-dismiss="modal">クローズ</button> </p> </p> <!-- /.modal-content --> </p> <!-- /.modal-dialog --> </p>
基本關於登入驗證部分就是這些,主要是與資料庫的資料進行對比,一開始用的對稱式加密的方式,對加密的方式還沒有仔細去研究,後面有機會再仔細看一下就好。