亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

php原生開(kāi)發(fā)新聞?wù)局崤_(tái)登入功能

我們之前的課程給大家介紹了做登入功能之前的所有準(zhǔn)備,匯入模板,建立資料庫(kù),之前的課程都不把這些的準(zhǔn)備都已經(jīng)完成了,那麼接下來(lái)就是我們要開(kāi)始做登入功能了!

首先我們要建立一個(gè)login.php文件,這個(gè)文件可以用來(lái)寫(xiě)登入頁(yè)面的判斷和驗(yàn)證,也可以把登入的html部分和登入驗(yàn)證判斷的php文件寫(xiě)在一起,因?yàn)槲覀兌贾纏hp檔案裡面可以寫(xiě)html程式碼!但是我們還是推薦分開(kāi)來(lái)寫(xiě)!

建立好login.php檔案以後,首先要做的就是連接資料庫(kù),因?yàn)獒崦娴尿?yàn)證都是要跟資料做比較!

在這裡要宣告一下,如果你的登入頁(yè)面有驗(yàn)證碼的話,那麼在每個(gè)頁(yè)面的一開(kāi)始必須開(kāi)啟?session_start();不然驗(yàn)證碼驗(yàn)證不了,我們這裡有驗(yàn)證碼所以我開(kāi)啟了session_start();

程式碼如下:

<?php
session_start();
// 連接mysql數(shù)據(jù)庫(kù)
$link = mysqli_connect('localhost', 'root', 'root');
if (!$link) {
    echo "connect mysql error!";
    exit();
}
// 選中數(shù)據(jù)庫(kù) news為數(shù)據(jù)庫(kù)的名字
$db_selected = mysqli_select_db($link, 'news');
if (!$db_selected) {
    echo "<br>selected db error!";
    exit();
}
// 設(shè)置mysql字符集 為 utf8
$link->query("set names utf8");

接下來(lái)就是要取得表單傳過(guò)來(lái)的資料了,因?yàn)槲覀円咽褂谜咻斎朐诒韱蔚氖褂谜呙Q以及密碼取得到,然後在進(jìn)行跟資料庫(kù)做對(duì)比,看看是否完全一致!

<?php
$username = $_POST['username'];//獲取用戶名
$password = $_POST['password'];//獲取密碼
$code = $_POST['code'];

至於是post傳輸資料還是get傳輸數(shù)據(jù),這個(gè)要根據(jù)你form表單裡面的method的屬性了。我們這裡是post!

資料已經(jīng)取得到了,接著就是需要驗(yàn)證了,看看使用者輸入的資料是否跟資料庫(kù)的資料完全一致,這樣才能判斷能不能讓使用者登入使用SQL語(yǔ)句來(lái)查詢,程式碼如下:

<?php
if(!empty($_POST)){
    // 查詢數(shù)據(jù)庫(kù)中是否存在用戶信息
    $sql = "select * from user where username = '{$username}' and password = '{$password}'";
    $result = mysqli_query($link,$sql);
    $user = mysqli_fetch_array($result,MYSQL_ASSOC);}

查詢到資料以後,進(jìn)行對(duì)兩組資料進(jìn)行比較:

if($user){
    header("Location: index.php");
}else{
    echo "<script>alert('賬戶或者密碼錯(cuò)誤!重新填寫(xiě)')</script>";
}

到這裡我們都是驗(yàn)證了使用者名稱以及密碼,那麼我們這樣有驗(yàn)證碼,所以我們還要對(duì)驗(yàn)證碼進(jìn)行驗(yàn)證,這裡我用了一驗(yàn)證碼類(lèi)別

1738.png

#code.zip

這裡也分享給大家!

然後我們要對(duì)驗(yàn)證碼進(jìn)行驗(yàn)證,程式碼如下:

if(($_SESSION['authcode']) !== ($code)){               //驗(yàn)證碼作對(duì)比,驗(yàn)證碼頁(yè)面跟輸入的驗(yàn)證碼對(duì)比
    echo "<script>alert('驗(yàn)證碼錯(cuò)誤!重新填寫(xiě)')</script>";

說(shuō)明一下:這裡的$_SESSION['authcode'] 是code驗(yàn)證碼類(lèi)別中的儲(chǔ)存的驗(yàn)證碼,我們要透過(guò)使用者輸入與儲(chǔ)存的驗(yàn)證,結(jié)果一致就通過(guò)!

OK! 到這裡我們的登入功能就完成了!

繼續(xù)學(xué)習(xí)
||
<?php session_start(); // 連接mysql數(shù)據(jù)庫(kù) $link = mysqli_connect('localhost', 'root', 'root'); if (!$link) { echo "connect mysql error!"; exit(); } // 選中數(shù)據(jù)庫(kù) news為數(shù)據(jù)庫(kù)的名字 $db_selected = mysqli_select_db($link, 'news'); if (!$db_selected) { echo "<br>selected db error!"; exit(); } // 設(shè)置mysql字符集 為 utf8 $link->query("set names utf8"); if(!empty($_POST)){ $username = $_POST['username'];//獲取用戶名 $password = $_POST['password'];//獲取密碼 $code = $_POST['code']; // 查詢數(shù)據(jù)庫(kù)中是否存在用戶信息 $sql = "select * from user where username = '{$username}' and password = '{$password}'"; $result = mysqli_query($link,$sql); $user = mysqli_fetch_array($result,MYSQL_ASSOC); if(($_SESSION['authcode']) !== ($code)){ //驗(yàn)證碼作對(duì)比,驗(yàn)證碼頁(yè)面跟輸入的驗(yàn)證碼對(duì)比 echo "<script>alert('驗(yàn)證碼錯(cuò)誤!重新填寫(xiě)')</script>"; }elseif($user){ header("Location: index.php"); }else{ echo "<script>alert('賬戶或者密碼錯(cuò)誤!重新填寫(xiě)')</script>"; }
提交重置程式碼