溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用php與MySql實現一個登錄系統(tǒng)

發(fā)布時間:2020-12-19 16:17:07 來源:億速云 閱讀:159 作者:Leah 欄目:開發(fā)技術

怎么利用php與MySql實現一個登錄系統(tǒng)?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

一、基本目標

首先在mysql存在著如下的用戶信息表:

怎么利用php與MySql實現一個登錄系統(tǒng)

在頁面中有一個登錄表單,上面需要用戶填寫用戶名與密碼等信息

如果用戶輸入的用戶名在用戶信息表里面根本就沒有,那么則彈出“查無此人”的對話框,并返回本頁

怎么利用php與MySql實現一個登錄系統(tǒng)

如果用戶輸入的密碼錯誤,那么則彈出“密碼錯誤”的對話框,并返回本頁

怎么利用php與MySql實現一個登錄系統(tǒng)

如果用戶輸入的登錄信息正確,那么則跳到“登錄成功”的頁面,并輸出用戶當前的IP、使用的系統(tǒng)的語言環(huán)境、與瀏覽器信息

怎么利用php與MySql實現一個登錄系統(tǒng)

“登錄成功”的頁面是被保護的,瀏覽器并不可以通過在瀏覽器中輸入地址的方式,繞開輸入密碼的頁面,直接訪問“登錄成功”頁面

怎么利用php與MySql實現一個登錄系統(tǒng)

二、基本思想

怎么利用php與MySql實現一個登錄系統(tǒng)

用戶輸入用戶名與密碼的那一頁用靜態(tài)頁面,只要其表單指向登錄判斷頁login.php就可以了。

welcome.php是用戶成功登錄的頁面,

exit.php用來銷毀session。

session就是用來存放用戶名與密碼的瀏覽器全局變量。

三、制作過程
 (1)login.html 
沒什么好說的,就一個登錄表單,見如下代碼: 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登錄頁面</title>
</head>

<body>
<form action="login.php" method="post">
用戶名:<input type="text" name="username" /><br />
密碼:<input type="password" name="password" /><br />
<input type="submit" value="登錄" />
</form>
</body>
</html>

 (2)exit.php

銷毀session頁面,并且在銷毀session之后,把頁面打回login.html
值得注意的是,在php一旦需要使用session,就應該在所有代碼的第一行使用session_start();系統(tǒng)函數,否則可能會出錯

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登出頁面</title>
</head>

<body>
<?php
session_start();
session_destroy();
?>
<script>
window.location.href="login.html";
</script>
</body>
</html>

 (3)login.php

登錄判斷頁面,還是經典的登錄三段論,首先接收login.html傳遞過來的username與password,查詢用戶信息表中是否有這個username,如果沒有,再登錄失敗,如果有,再同時判斷傳過來的、用戶輸入的password是否等于這個username在數據庫中對應的dbpassword,如果是,登錄成功,并把username存入session,傳遞給登錄成功頁面,否則登錄失敗。
本頁面還用到了系統(tǒng)內置函數is_null判斷查詢結果是否為空,如果數據庫查詢結果為空,根本就不會有值賦予給新定義的dbusername,這個dbusername依舊為空。
同時,如果登錄成功之后,還要使用mt_rand(0,100000);在0~100000中產生一個保護登錄成功頁面的隨機數code。
并且做完一切判斷之后,記得在最后加入一條關閉數據庫的語句,人走帶門。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>登陸中……</title>
</head>

<body>
<?php
session_start();
$username=$_REQUEST["username"];
$password=$_REQUEST["password"];
$con=mysql_connect("localhost","root","root");
if(!$con){
 die("數據庫連接失?。?quot;);
 }
mysql_select_db("test",$con);
$dbusername=null;
$dbpassword=null;
$result=mysql_query("select * from user where username='".$username."';");
while($row=mysql_fetch_array($result)){
 $dbusername=$row["username"];
 $dbpassword=$row["password"];
}
if(is_null($dbusername)){
?>
<script>
alert("查無此人!");
window.location.href="login.html";
</script>
<?php 
 }
else{
 if($dbpassword!=$password){
?>
<script>
alert("密碼錯誤!");
window.location.href="login.html";
</script>    
<?php
 }
 else{
 $_SESSION["username"]=$username;
 $_SESSION["code"]=mt_rand(0,100000);
?>
<script>
window.location.href="welcome.php";
</script> 
<?php
 }
 }
mysql_close($con);
?>

</body>
</html>

 (4)welcome.php

在welcome.php成功登錄頁面中,先要用isset來判斷是否有l(wèi)ogin.php傳遞過來的code,這里的isset與上面is_null的區(qū)別,isset是判斷有沒有這個變量,is_null是在有這個變量的前提下,判斷這個變量是否為null,如果沒有code這個session則說明用戶非正常途徑登錄的,馬上扔到exit.php再見走人
如果是正常登錄,則通過server對象里面的各個小對象輸出用戶信息。

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>歡迎登錄</title>
</head>

<body>
<?php
session_start();
if(isset($_SESSION["code"])){
?>
歡迎登錄!<?php
echo "${_SESSION["username"]}";
?><br />
你的IP:<?php
echo "${_SERVER['REMOTE_ADDR']}";
?>
<br />
你的系統(tǒng)語言:<?php
echo "${_SERVER['HTTP_ACCEPT_LANGUAGE']}";
?>
<br />
你的瀏覽器為:<?php
echo "${_SERVER['HTTP_USER_AGENT']}";
?>
<br />
<a href="exit.php">退出登錄</a>
<?php
}
else{
?>
<script>
alert("請正常登錄!");
window.location.href="exit.php";
</script>
<?php
}
?>
</body>
</html>

關于怎么利用php與MySql實現一個登錄系統(tǒng)問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI