1.环境搭建
2.设计html
既然是注册及登陆两个功能,就需要用html中的<from>写两个表单,用于提交数据
1)注册表单
<form action="register.php" method="post">
<p>
<input type="text" name="user" placeholder="请输入用户名">
</p>
<p>
<input type="password" name="pwd" placeholder="请输入密码">
</p>
<p>
<input type="password" name="rpwd" placeholder="请确认密码">
</p>
<p>
<input type="submit" value="确定">
<input type="button" value="取消" id="cancel">
</p>
</form>
将数据提交给register.php(见后),在php中对数据进行处理
2)登陆表单
<form action="login.php" method="post">
<p>
<input type="text" name="user" placeholder="请输入用户名">
</p>
<p>
<input type="password" name="pwd" placeholder="请输入密码">
</p>
<p>
<input type="submit" value="确定">
<input type="button" value="注册" id="res">
</p>
</form>
3.设计php
php用于接收浏览器传送过来的数据并与数据库进行交互
1)register.php
<?PHP
$user=$_POST['user'];//$_POST是php中的预定义数组(系统定义无需用户定义),用于接收post过来的数据
$pwd=$_POST['pwd'];
$rpwd=$_POST['rpwd'];
$host='127.0.0.1';//本地主机
$db_user='root';//数据库账户
$db_pwd='111111';//数据库密码
$db_name='test';//数据库名称
//新建数据库对象,连接数据库
$db=new mysqli($host,$db_user,$db_pwd,$db_name);//创建mysqli对象建立数据库连接
$user_check="select * from t_user where username='{$user}'";
//sql查询语句返回数据对象
$mysql_result=$db->query($user_check);
//定义变量调用fetch_array顺次接受单条记录
$row=$mysql_result->fetch_array(MYSQLI_ASSOC);
//如果不为null,则说明数据库中已经有了该用户名
if($row<>null){
echo "<script>alert('该用户名已存在!')
window.location.href='Login.html'</script>";
}
//->类似于Java中的. 用于对对象属性和对象方法的调用,而connect_errno是mysqli对象的一个属性
//<>是不等于的意思,0代表false
if($db->connect_errno<>0){
//数据库连接失败会截停程序
die('数据库连接失败');
}
//限制密码的位数
else if($user===""){
echo "<script>alert('用户名不得为空!')
window.location.href='Login.html'</script>";
}
else if(strlen($pwd)<6 or strlen($pwd)>15){
echo "<script>alert('密码不得小于6位或大于15位!')
window.location.href='Login.html'</script>";
}
//判断两次输入的密码是否一致
else if($pwd<>$rpwd){
echo "<script>alert('两次输入密码不一致!')
window.location.href='Login.html'</script>";
}
else{
//设置数据的传输编码,防止乱码
$db->query("SET NAMES UTF8");
$sql="INSERT INTO t_user(username,pwd) values('{$user}','{$pwd}')";
//调用query方法进行数据库操作,并且返回一个Boolean值
$db->query($sql);
echo "<script>alert('注册成功!');
window.location.href='Login.html'</script>";
}
?>
2)login.php
<?php
$user=$_POST['user'];
$pwd=$_POST['pwd'];
$host='127.0.0.1';
$db_user='root';
$db_pwd='111111';
$db_name='test';
//新建数据库对象,连接数据库
$db=new mysqli($host,$db_user,$db_pwd,$db_name);
$user_check="select * from t_user where username='{$user}'";
//取到值(包括取到null)返回一个对象,取不到值返回false
//query执行插入语句时返回true和false,执行查询语句时返回一个对象
$mysql_result=$db->query($user_check);
if($mysql_result === false){
echo "SQL错误";
exit;
}
//通过fetch_array方法取出结果集中的一条记录,多次调用顺次提取
$row=$mysql_result->fetch_array(MYSQLI_ASSOC);
//在最外层的if语句中判断用户名密码是否为空值
if($user==="" or $pwd===""){
echo "<script>alert('用户名或密码不能为空!')
window.location.href='Login.html'</script>";
}
else{
//若取到的查询结果为null则说明用户名不存在
if($row===null){
echo "<script>alert('用户名不存在!')
window.location.href='Login.html'</script>";
}
else{
//若用户名存在,则判断输入密码与数据库中密码是否一致
if($row['pwd']<>$pwd){
echo "<script>alert('密码错误,请重新输入!')
window.location.href='Login.html'</script>";
}
//登陆成功,跳转至主页面
else{
}
}
}
?>