有两个文件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");
?>