PHP制作登錄注冊頁面


用PHP制作登錄和注冊頁面,一共6個頁面,三個可視頁面:登錄、注冊、主頁,三個處理頁面:驗證、添加用戶、清除退出

 

注冊

<!--這是注冊頁面d&z-2-z.php,用戶可以提交用戶名和密碼進行注冊,點擊注冊按鈕提交給d&z-4-add.php頁面處理-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>

<body>

<h1>注冊</h1>
<form action="d&z-4-add.php" method="post">    <!--from表單指定數據的接收文件為d&z-4-add.php,指定數據傳輸方式為post-->
<div><label for="users">用戶名</label><input type="text" name="users" id="users"></div><!--用戶名欄-->
<div><label for="pwd">密碼</label><input type="password" name="pwd" id="pwd"></div><!--密碼欄-->
<div><label for="pwd2">確認密碼</label><input type="password" name="pwdag" id="pwd2"></div><!--再次確認密碼欄-->
<input type="submit" value="注冊" id="tj" onClick="return tiJiao()"><!--注冊按鈕,添加了點擊事件,用來驗證兩次密碼是否輸入的相同-->
</form>
</body>
<script type="text/javascript">
    var pwd = document.getElementById("pwd");    //分別獲取密碼和確認密碼的表單元素
    var pwd2 = document.getElementById("pwd2");
    var bool = false;    //設置一個為非的變量
    
    /*
        tiJiao()函數用來判斷兩次密碼輸入的內容是否相同,相同則返回是,不同則輸出提示並返回非
    */
    function tiJiao(){    
        if(pwd.value==pwd2.value){
            bool = true;    
        }else{
            alert("兩次密碼輸入不同!");    
        }    
        return bool;
    }
</script>
</html>

 

用戶添加

<?php 
    //這里是d&z-4-add.php,是d&z-2-z.php頁面提交后跳轉到的處理頁面,處理結果又兩種,添加數據成功則跳轉到登錄頁面d&z-1-d.php,失敗則輸出提示“注冊失敗!”
    require_once("./DBDA.class.php");    //引入數據庫連接類
    $db = new DBDA();    //實例化數據連接
    $users = $_POST["users"];    //接收傳過來的用戶名和密碼數據
    $pwd = $_POST["pwd"];
    $arr = array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","i","s","t","u","v","w","x","y","z","1","2","3","4","5","6","7","8","9","0","*","#","@","$","%","&");//這是一個自定義的字符串數組
    $sjs0 = rand(0,41);    //設置變量從0到9取10個隨機數,
    $sjs1 = rand(0,41);
    $sjs2 = rand(0,41);
    $sjs3 = rand(0,41);
    $sjs4 = rand(0,41);
    $sjs5 = rand(0,41);
    $sjs6 = rand(0,41);
    $sjs7 = rand(0,41);
    $sjs8 = rand(0,41);
    $sjs9 = rand(0,41);
    //設置秘鑰,秘鑰是用來提高加密級別的,是由以上自定義字符串數組中隨機取出的10個字符組成的字符串,
    $miyao = "{$arr[$sjs0]}{$arr[$sjs1]}{$arr[$sjs2]}{$arr[$sjs3]}{$arr[$sjs4]}{$arr[$sjs5]}{$arr[$sjs6]}{$arr[$sjs7]}{$arr[$sjs8]}{$arr[$sjs9]}" ;
    $pwdjm = md5($pwd.$miyao);    //將秘鑰拼接在傳入的密碼后面,然后用MD5方法進行加密
    $sql = "insert into d_z values('{$users}','{$pwdjm}','{$miyao}')";    //sql語句為:將用戶名、加密后的MD5碼、秘鑰存入數據庫
    $result = $db->query($sql,1);    //執行sql語句,增語句加上第二參數1,用$result接收結果
    if($result){                    //執行成功,跳轉到登錄頁面d&z-1-d.php
        echo "<script type='text/javascript'>
            window.location.href='d&z-1-d.php';
        </script>";    
    }else{                            //執行失敗,輸出提示“注冊失敗!”
        echo "注冊失敗!";    
    }

 

登錄

<!--這是登錄的主頁面d&z-1-d.php,用戶可以輸入用戶名和密碼,點擊登錄時跳轉到d&z-5-yan.php做驗證處理,還可以點擊注冊按鈕去跳轉到注冊頁面d&z-2-z.php-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>

<body>
<h1>登錄</h1>
<form action="d&z-5-yan.php" method="post"><!--from表單指定數據接收頁面為d&z-5-yan.php,數據的傳輸方式為post-->
<div><label for="users">用戶名</label><input type="text" name="users" id="users"></div><!--用戶名欄-->
<div><label for="pwd">密碼</label><input type="password" name="pwd" id="pwd"></div><!--密碼欄-->
<input type="submit" value="登錄"><!--登錄按鈕-->
<a href="d&z-2-z.php"><input type="button" value="注冊"></a><!--注冊按鈕,添加a標簽並指定跳轉頁面為d&z-2-z.php的注冊頁面-->
</form>

</body>
</html>

 

驗證

<?php
    //這里是d&z-5-yan.php,是登錄頁面d&z-1-d.php點擊登錄后跳轉過來的處理頁面
    session_start();     //開啟session
    require_once("./DBDA.class.php");    //引入數據庫訪問類
    $db = new DBDA();
    $users = $_POST["users"];    //接收傳過來的用戶名和密碼數據
    $pwd = $_POST["pwd"];
    $sql = "select * from d_z where users='{$users}' ";    //創建sql語句查詢傳入的用戶名在數據庫中的對應的數據
    $arr = $db->query($sql);    //執行sql語句並用$arr接收
    if(!empty($arr)){    //判斷$arr是否為空
        $pwdjm = md5("{$pwd}{$arr[0][2]}");    //如果$arr不為空,重組MD5碼
        if($pwdjm==$arr[0][1]){        //如果重組的MD5碼和數據庫中提取是MD5碼相同,則驗證成功,跳轉到主頁d&z-3-index.php,並且把傳入的用戶名存入$_SESSION["users"]中
            echo "<script type='text/javascript'>
                window.location.href='d&z-3-index.php';
            </script>";    
            $_SESSION["users"] = $users; 
        }else{        //如果MD5碼不匹配,則提示用戶名和密碼輸入錯誤
            echo "用戶名和密碼錯誤!";    
        }
    }else{            //$arr為空說明沒有對應的用戶名,提示用戶名不存在
        echo "用戶名不存在!";    
    }    

 

主頁

<!--這是主頁頁面d&z-3-index.php,是d&z-5-yan.php驗證成功后跳轉過來的頁面,添加了防止繞過登錄的方法-->
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>無標題文檔</title>
</head>
<?php
//用來防止繞過登錄的方法
    session_start();    //開啟session
    if(empty($_SESSION["users"])){    //判斷$_SESSION["users"]是否為空
        echo "<script type='text/javascript'>
            window.location.href='d&z-1-d.php';
        </script>";        //空則跳轉回登錄頁面d&z-1-d.php
        exit;    //    停止執行后面的代碼
    }
?>
<body>
<h1>歡迎光臨</h1>    
<a href="d&z-6-qing.php"><input type="button" value="退出"></a><!--退出登錄按鈕,點擊跳轉到處理頁面d&z-6-qing.php-->
</body>
</html>

 

退出清除

<?php
//這里是d&z-6-qing.php,作用是用來清除$_SESSION["users"]值,即退出登錄
session_start();     //開啟session
unset($_SESSION["users"]);    //清除$_SESSION["users"]值
echo "<script type='text/javascript'>
            window.location.href='d&z-3-index.php';
        </script>";        //跳轉到主頁d&z-3-index.php,但由於沒有了$_SESSION["users"]的值,會觸發防止繞過登錄方法,直接跳轉到登錄頁面d&z-1-d.php

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM