1.制作一个测试主页
A.思维导图:
B.源码:
<?php
session_start();//启动新会话或者重用现有会话解释
?>
<html>
<head>
<meta charset=\"大众utf-8\"大众 />
<title>测试主页</title> <!--标题-->
</head>
<body>
<?php
if (isset($_SESSION['userName'])) //isset() 检测变量是否设置 如果登录成功
{
$userName = $_SESSION['userName'];//$_SESSION['username']的值赋值给变量$userName
echo \公众欢迎您:\"大众 . $userName; //欢迎您:登录的名称
echo '<a href = \"大众logout.php\"大众><input type = \公众button\公众 value = \"大众注销\公众 /></a>'; //注销按钮
}
else {//登录失落败
echo '<a href = \公众login.php\公众><input type = \"大众button\"大众 value = \公众登录\"大众 /></a>';//登录按钮
echo '<a href = \"大众register.php\"大众><input type = \"大众button\公众 value = \"大众注册\"大众 /></a>';//注册按钮
}
?>
</body>
</html>
C.结果:
2. 登录页面
A. 思维导图:
B.源码:
<html>
<head>
<meta charset=\公众utf-8\公众 />
<title>登录</title><!--标题-->
<style>
.error{color:red;}<!--CSS样式-->
</style>
</head>
<body>
<?php
$isInfoCanUse = false;//信息是否可用被显示
$userName = $password= \公众\公众;//初始化,防止涌现未定义就利用的缺点
$userNameErr = $passwordErr = \"大众\"大众;
function dealInfo($data){ //表单信息安全处理 防止被黑客攻击
$data = trim($data);// 移除字符串两侧的空缺字符或其他预定义字符
$data = htmlspecialchars($data);//把一些预定义的字符转换为 HTML 实体
$data = stripslashes($data);//删除反斜杠
return $data;
}
if ($_SERVER['REQUEST_METHOD'] == \"大众POST\"大众) { //判断信息是否完全
$isInfoCanUse = true;
if (empty($_POST['userName'])) { //判断用户名称是否为空
$isInfoCanUse = false;
$userNameErr = \"大众用户名称不能为空\"大众;//打印用户名称不能为空
} else {
$userName = dealInfo($_POST['userName']); //调用表单信息安全处理函数
}
if (empty($_POST['password'])) {//判断密码是否为空
$isInfoCanUse = false;
$passwordErr = \"大众密码不能为空\"大众;//打印密码不能为空
} else {
$password = dealInfo($_POST['password']); //调用表单信息安全处理函数
}
}
if ($_SERVER['REQUEST_METHOD'] == \公众POST\"大众 && $isInfoCanUse == true) { //判断表单是不是POST要求 及其信息是否可用被显示
$dbhost = '127.0.0.1';//数据库主机
$dbuser = 'root';//数据库用户名
$dbpass = '';//数据库密码
$dbname = 'users';//数据库名
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);//连接数据
if (!$link) {
die('连接数据库失落败<br/>');//失落败 打印连接数据库失落败
}
else {
//echo \公众连接数据库成功<br/>\"大众;//成功 打印连接数据库成功
}
if ($isInfoCanUse){ //信息是否可用被显示
$sql = \公众SELECT userName FROM account WHERE userName='$userName'\"大众;//sql 查询语句 查询用户名
$result = mysqli_query($link, $sql);//不论成功与否,都返回结果集
$test = mysqli_fetch_assoc($result);//false 查找失落败
if($test == false) {
$userNameErr = \"大众用户名称不存在\"大众;
}
else {//sql 查询语句 查询用户名和密码
$sql = \"大众SELECT userName,password FROM account
WHERE userName='$userName' and password = '$password'\"大众;
$result = mysqli_query($link, $sql);//不论成功与否,都返回结果集
$test = mysqli_fetch_assoc($result);//false 查找失落败
if($test == false) {
$passwordErr = \公众密码缺点\"大众;
} else {
//存入session
session_start();//启动新会话或者重用现有会话解释
$_SESSION['userName'] = $userName;//把用户名称存入$_SESSION['userName']
echo \"大众登录成功!
\"大众; //打印登录成功!
//页面跳转
echo '<a href = \"大众homepage.php\公众><input type = \公众button\"大众 value = \公众返回主页\公众 /></a>';
}
}
}
}
?>
<form method=\"大众post\公众 action=\"大众<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>\公众 >
用户名称:<input type=\"大众text\"大众 name=\"大众userName\"大众 />
<?php echo \公众<span class=error>\"大众 .$userNameErr.\"大众</span>\公众;?><br/>
登录密码:<input type=\"大众password\公众 name=\公众password\"大众 />
<?php echo \"大众<span class=error>\"大众 .$passwordErr.\"大众</span>\"大众;?><br/>
<input type=\"大众submit\"大众 value=\公众登录\"大众 />
</form>
</body>
</html>
C.结果:
3.注册
A.思维导图:
B.源码:
<html>
<head>
<meta charset=\公众utf-8\"大众 />
<title>注册</title><!--标题-->
<style>
.error{color:red;}<!--CSS样式-->
</style>
</head>
<body>
<?php
$isInfoCanUse = false;//信息是否可用被显示
$userName = $password = $email = \"大众\"大众;
$userNameErr = $passwordErr = $emailErr = \"大众必填项目\公众;
function dealInfo($data){ //表单信息安全处理
$data = trim($data);// 移除字符串两侧的空缺字符或其他预定义字符
$data = htmlspecialchars($data);//把一些预定义的字符转换为 HTML 实体
$data = stripslashes($data);//删除反斜杠
return $data;
}
if ($_SERVER['REQUEST_METHOD'] == \"大众POST\"大众) { //判断信息是否完全
$isInfoCanUse = true;
if (empty($_POST['userName'])) {//判断用户名称是否为空
$isInfoCanUse = false;
$userNameErr = \公众用户名称不能为空\"大众;//打印用户名称不能为空
} else {
if (!preg_match(\"大众/^[\w]$/\"大众,$_POST['userName'])) {//用正则表达式判断是否符合字母和数字
$userNameErr = \"大众只许可字母和数字\"大众; //打印只许可字母和数字
$isInfoCanUse = false;
}
else {
$userName = dealInfo($_POST['userName']); //调用表单信息安全处理函数
}
}
if (empty($_POST['password'])) {//判断密码是否为空
$isInfoCanUse = false;
$passwordErr = \公众注册密码不能为空\"大众;//打印注册密码不能为空
} else {
if (!preg_match(\公众/(\w{6,14})/\公众,$_POST['password'])) {//用正则表达式判断是否符合6到14位
$passwordErr = \公众密码长度 6~14位\"大众; //打印密码长度 6~14位
$isInfoCanUse = false;
}
else{
$password = dealInfo($_POST['password']);//调用表单信息安全处理函数
}
}
if (empty($_POST['email'])) {////判断邮箱是否为空
$isInfoCanUse = false;
$emailErr = \公众注册邮箱不能为空\"大众;//打印注册邮箱不能为空
} else {
if (!preg_match(\"大众/([\w\-]+\@[\w\-]+\.[\w\-]+)/\公众,$_POST['email'])) {//用正则表达式判断是否符合邮箱格式
$emailErr = \"大众造孽邮箱格式\"大众; //打印造孽邮箱格式
$isInfoCanUse = false;
}
else {
$email = dealInfo($_POST['email']);//调用表单信息安全处理函数
}
}
}
if ($_SERVER['REQUEST_METHOD'] == \"大众POST\公众 && $isInfoCanUse == true) {
$dbhost = '127.0.0.1';//数据库主机
$dbuser = 'root';//数据库用户名
$dbpass = '';//数据库密码
$dbname = 'users';//数据库名
$link = mysqli_connect($dbhost, $dbuser, $dbpass, $dbname);//连接数据库
if (!$link) {
die('连接数据库失落败<br/>');//失落败 打印连接数据库失落败
}
else {
//echo \"大众连接数据库成功<br/>\公众;//成功 打印连接数据库成功
}
$sql = \公众SELECT userName FROM account WHERE userName='$userName'\"大众;//sql 查询语句 查询用户名
$result = mysqli_query($link, $sql);//不论成功与否,都返回结果集
$test = mysqli_fetch_assoc($result);//false 查找失落败
if($test != false) {
$userNameErr = \"大众用户名称已经存在\公众;//打印用户名称已经存在
}
else {//sql 添加语句 添加用户名 密码 邮箱
$sql = \"大众INSERT INTO account(userName, password, email)
VALUES('$userName', '$password', '$email')\公众;
if (mysqli_query($link, $sql)) {
echo \"大众注册成功<br/>\"大众; //打印注册成功
}
else {
echo \"大众注册失落败<br/>\"大众;//打印注册失落败
}
//页面跳转
echo '<a href = \公众homepage.php\"大众><input type = \"大众button\公众 value = \"大众返回主页\"大众 /></a>';
}
}
?>
<form method=\"大众post\"大众 action=\"大众<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>\公众 >
用户名称:<input type=\"大众text\公众 name=\"大众userName\公众 />
<?php echo \"大众<span class=error>\"大众 .$userNameErr.\公众</span>\"大众;?><br/>
注册密码:<input type=\"大众password\公众 name=\"大众password\"大众 />
<?php echo \"大众<span class=error>\公众 .$passwordErr.\"大众</span>\公众;?><br/>
注册邮箱:<input type=\"大众text\"大众 name=\公众email\"大众 />
<?php echo \"大众<span class=error>\"大众.$emailErr.\"大众</span>\公众;?><br/>
<input type=\公众submit\"大众 value=\"大众注册\"大众 />
</form>
</body>
</html>
C.结果:
4.注销页面
A.思维导图:
B.源码:
<?php
session_start();//启动新会话或者重用现有会话解释
if (isset($_SESSION['userName'])) //isset() 检测变量是否设置 如果登录成功
{
session_unset();//会开释当前会话注册的所有会话变量。
session_destroy();//销毁一个会话中的全部数据
}
?>
<html>
<head>
<meta charset=\"大众utf-8\"大众 />
<title>注销页面</title><!--标题-->
</head>
<body>
<a href = \"大众homepage.php\公众><input type = \"大众button\公众 value = \"大众返回主页\"大众 /></a>
</body>
</html>
C.结果: