php第3课:制作用户登陆和密码验证页面
时间 2019-04-02
主讲 刘培富
地点 在线分享,大家自学
接下来的课程,以制作一个“企业派驻人员管理系统”项目为例,讲解php的具体应用,公开所有原理和代码,方便大家学习和调试。通过这个项目的实践,相信大家可以短时间内掌握php+mysql的开发。
本课,讲解用户登陆页面,内容包括:用户打开首页,输入用户名和密码,如果正确,则进入下一步操作,如果错误,则不允许登陆。
1,制作登陆页面(站点首页)index.php
<html>
<head>
<title>企业派驻人员管理系统</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,添加数据表
在mysql中建库renyuan,建表user
user表中建立以下字段,如图:
加入一条记录:用户名aa,密码bb,用于测试。
3,建立数据库连接页面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'");//编码转化
$select_db = mysql_select_db($mysql_conf['db']);
?>
到地址栏里运行http://localhost/conn.php,如果没有报错的提示,则表示数据库连接正常。
4,建立登陆验证页面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('密码错误!');window.history.go(-1);</script>";
die();
}
else
{
Header("Location: admin.php");
}
mysql_close($mysql_conn);
?>
再建立admin.php,面里写“登陆成功”。输入用户和密码正确,则转向到admin.php,否则,提示密码错误。
以上代码,解释如下:
(1)变量的使用方法:字母前面加$
(2)每个语句结束要使用分号
(3)转向新网页:Header("x.php");
(4)自定义函数function x{ return y}
(5)结束网页die();
(6)引入其他网页:include_once("conn.php");
附1:页面间变量的传递方式
两种传递方式是必须掌握的,一种是表单提交,称为POST,另一种是网址附带,称为GET
post的接收方式为:$_POST["xx"]
get的接收方式为:$_GET["xx"]
由于这类变量,是由用户提交的,为了防止sql注入、格式不规范等情形,我们需要自定义一个函数,对该类变量进行一次过滤:
$pass = test_input($_POST["a2"]);
}
function test_input($data) {
$data = trim($data); //去空格
$data = stripslashes($data); //去反斜杠
$data = htmlspecialchars($data); //消除html预定义字符
return $data;
}