PHP学习笔记(七):前台用户登陆、后台匹配数据库进行校验

有两个文件login.html和login_check.php

login.html

<!--
	作者:1121263265@qq.com
	时间:2015-06-28
	描述:这个里面有几个知识点:
	1、重置按钮的type=reset,可以直接清除输入框的内容
	2、提交按钮,提交前进行校验的方法,就是写一个脚本check函数,然后在onclick时触发
-->
<!DOCTYPE html>
<html>
<head>
<title>library</title>	
<meta charset="utf-8" />
</head>
<body>
<form action="login_check.php" οnsubmit="return check(this)" method="post">
姓名:<input type="text" name="name"><br>
密码:<input type="text" name="password"><br>
<input type="submit" value="提交">
<input type="reset" value="重置" />
</form>

<script>
	function check(form)
	{
		//不能用null来代替'',因为null是这个变量不存在,''才是这个变量值为空
		//而事实上,即使没有输入名字或密码,这个变量也还是存在的
		if(form.name.value!='' && form.password.value!='')
		{
			alert("用户名和密码已输入,点击确认开始匹配");
		}
		else
		{
			if(!form.name.value)
			{
				alert("请输入用户名");
				form.name.focus();
				return false;
			}
			if(!form.password.value)
			{
				alert("请输入密码");
				form.password.focus();
				return false;
			}
		}		
	}
</script>
</body>
</html>

login_check.php

<meta charset="utf-8" />
<?php

session_start();
include('conn/conn.php');
$name=$_POST['name'];
$password=$_POST['password'];
if($name=='' || $password=='')
	echo "<script>history.go(-1);</script>";
$sql="select * from tb_manager where name=$name";
$result=mysqli_query($conn, $sql);
if(!mysqli_num_rows($result))
{
	//如果没有这个账号,就返回上一页
	  echo"<script>alert('没有对应的账号');history.go(-1);</script>"; 
}
$array=mysqli_fetch_array($result, MYSQLI_NUM);
//数据库结构为---$array[0]:ID,$array[1]:name,$array[2]:password
if($array[2]!=$password)
{
	//如果密码错误,也返回上一页
	echo "<script>alert('密码输入错误,请重新输入');history.back();</script>";
}

echo "登陆成功!<br/> 账号:$array[1]<br/> 密码:$array[2]<br/>";

$_SESSION['name']=$name;
$_SESSION['password']=$password;
echo "即将跳转到主页!";

//页面跳转的两种方式:
/*
 * 一、通过header()跳转
 * 定时1秒后,跳转到index.php
 * header("refresh:1;url=index.php"); 
 * 
 * 二、通过脚本跳转
 * echo "<script>var url='index.php';setTimeout('window.location.href=url',1000);</script>";
 * 
 */
	//下面用header方式跳转
	 header("refresh:1;url=index.php"); 
//网上说header不能放到输出内容的后面,但是我放到输出内容的后面,也可以正常运行,不知道为啥
//header("Location:index.php");
?>



  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值