php第3課:制作用戶登陸和密碼驗(yàn)證頁面
時(shí)間 2019-04-02
主講?劉培富
地點(diǎn)?在線分享啡邑,大家自學(xué)
接下來的課程产徊,以制作一個(gè)“企業(yè)派駐人員管理系統(tǒng)”項(xiàng)目為例昂勒,講解php的具體應(yīng)用,公開所有原理和代碼舟铜,方便大家學(xué)習(xí)和調(diào)試戈盈。通過這個(gè)項(xiàng)目的實(shí)踐,相信大家可以短時(shí)間內(nèi)掌握php+mysql的開發(fā)谆刨。
本課塘娶,講解用戶登陸頁面,內(nèi)容包括:用戶打開首頁痊夭,輸入用戶名和密碼刁岸,如果正確,則進(jìn)入下一步操作她我,如果錯(cuò)誤虹曙,則不允許登陸迫横。
1,制作登陸頁面(站點(diǎn)首頁)index.php
<html>
<head>
<title>企業(yè)派駐人員管理系統(tǒng)</title>
</head>
<body>
<form method=post action=index_tj.php>
用戶名:<input type=text name=a1><br>
密碼: <input type=password name=a2><br>
<input type=submit value="確定">
</form>
</body>
</html>
2酝碳,添加數(shù)據(jù)表
在mysql中建庫renyuan矾踱,建表user
user表中建立以下字段,如圖:
加入一條記錄:用戶名aa疏哗,密碼bb呛讲,用于測(cè)試。
3返奉,建立數(shù)據(jù)庫連接頁面conn.php
<?php
function p($a){
while ($row = mysql_fetch_assoc($a)) {
? ? return $row;
}
}
$mysql_conf = array(
? ? 'host'? ? => '127.0.0.1:3306',
? ? 'db'? ? ? => 'renyuan',
? ? 'db_user' => 'root',
? ? 'db_pwd'? => 'root',
? ? );
$mysql_conn = @mysql_connect($mysql_conf['host'], $mysql_conf['db_user'], $mysql_conf['db_pwd']);
mysql_query("set names 'utf8'");//編碼轉(zhuǎn)化
$select_db = mysql_select_db($mysql_conf['db']);
?>
到地址欄里運(yùn)行http://localhost/conn.php贝搁,如果沒有報(bào)錯(cuò)的提示,則表示數(shù)據(jù)庫連接正常芽偏。
4雷逆,建立登陸驗(yàn)證頁面index_tj.php
<?php
//接收表單提交的信息
$user = $pass = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
? $user = test_input($_POST["a1"]);
? $pass = test_input($_POST["a2"]);
}
function test_input($data) {
? $data = trim($data);
? $data = stripslashes($data);
? $data = htmlspecialchars($data);
? return $data;
}
include_once("conn.php");
$sql = "select * from user where user='".$user."' and pass='".$pass."'";
$res = mysql_query($sql);
$jg=p($res);
if (is_null($jg))
{
echo "<script>alert('密碼錯(cuò)誤!');window.history.go(-1);</script>";
die();
}
else
{
Header("Location: admin.php");
}
mysql_close($mysql_conn);
?>
再建立admin.php哮针,面里寫“登陸成功”关面。輸入用戶和密碼正確坦袍,則轉(zhuǎn)向到admin.php十厢,否則,提示密碼錯(cuò)誤捂齐。
以上代碼蛮放,解釋如下:
(1)變量的使用方法:字母前面加$
(2)每個(gè)語句結(jié)束要使用分號(hào)
(3)轉(zhuǎn)向新網(wǎng)頁:Header("x.php");
(4)自定義函數(shù)function x{ return y}
(5)結(jié)束網(wǎng)頁die();
(6)引入其他網(wǎng)頁:include_once("conn.php");
附1:頁面間變量的傳遞方式
兩種傳遞方式是必須掌握的奠宜,一種是表單提交包颁,稱為POST,另一種是網(wǎng)址附帶压真,稱為GET
post的接收方式為:$_POST["xx"]
get的接收方式為:$_GET["xx"]
由于這類變量娩嚼,是由用戶提交的,為了防止sql注入滴肿、格式不規(guī)范等情形岳悟,我們需要自定義一個(gè)函數(shù),對(duì)該類變量進(jìn)行一次過濾:
? $pass = test_input($_POST["a2"]);
}
function test_input($data) {
? $data = trim($data);? ? //去空格
? $data = stripslashes($data);? //去反斜杠
? $data = htmlspecialchars($data);? //消除html預(yù)定義字符
? return $data;
}