首先是公共模块
连接数据库 config.php
mysqli_select_db和mysqli_query是两个参数
登陆模块
function login($con,$sql,$username,$password){
$sel=mysqli_query($con,$sql);
$result=mysqli_fetch_array($sel);
session_start();
$_SESSION['uid']=$username;
$_SESSION['password']=$password;
if ($_SESSION['uid']==$result[0]&&$_SESSION['password']==$result[1]) {
//登录成功,跳转首页
echo "<script language='javascript' type='text/javascript'>";
echo "window.location.href='index.html'";
echo "</script>";
}else{
//登陆失败,返回登陆页
echo "<script type='text/javascript'>";
echo "window.alert('登录失败');";
echo "window.location.href='login.html'";
echo "</script>";
}
把登陆放入公共模块的一个函数里然后调用。
login.php
<?php
include("config.php");
//reg($con,$insert);
$username=$_POST["name"];
$password=$_POST["password"];
session_start();
//验证登录
if(!empty($_SESSION['uid'])){
echo "<script type='text/javascript'>";
echo "window.alert('请不要重复登陆');";
echo "window.location.href='login.html'";
echo "</script>";
}else{
$sql="select username,password from admin where username=$username";
login($con,$sql,$username,$password);
}
?>
接收用户名和密码,验证session是否为空,不为空则弹出警告框返回页面。
为空则执行login函数,把用户名和密码存储进session,进行查询判断session是否与查询结果一致,一致则登录成功,反之则失败。
注册模块
代码:
<?php
$username=$_POST["name"];
$password1=$_POST["password"];
$password2=$_POST["password1"];
$email=$_POST["email"];
$tel=$_POST["tel"];
//先执行查询
include("config.php");
$sql="select username from admin where username='$username'";
$select=mysqli_query($con,$sql);
$result=mysqli_fetch_array($select);
//判断查询是否为空
if(isset($result)){
echo "<script type='text/javascript'>";
echo "window.alert('该用户名已经存在');";
echo "window.location.href='register.html'";
echo "</script>";
}else{
//比较两次密码
if($password2!=$password1){
echo "<script type='text/javascript'>";
echo "window.alert('两次密码设置不一致');";
echo "window.location.href='register.html'";
echo "</script>";
}else{
//查询没有,插入数据
$insert_sql="insert into admin(username,password,email,tel,time) values('$username','$password1','$email','$tel',now())";
reg($con,$insert_sql);
//echo "注册成功";
}
}
?>
function reg($con,$sql1){
$in=mysqli_query($con,$sql1);
if($in){
echo "<script language ='javascript' type='text/javascript'>";
echo "window.alert('注册成功');";
echo "window.location.href='login.html'";
echo "</script>";
}else{
echo mysqli_error($con);
}
先对用户名进行查询,查询为空则继续运行,然后对两次密码进行比较符合之后插入数据库
修改密码
<?php
$username=$_POST["name"];
$password1=$_POST["password"];
$new=$_POST["newpassword"];
echo $username."$password</br>".$new;
//查询用户名存不存在
include("config.php");
$sql="select username from admin where username='$username'";
$select=mysqli_query($con,$sql);
$result=mysqli_fetch_array($select);
if(isset($result)){
//存在,开始修改密码
//对比旧密码
$sql_password="select password from admin where username='$username'";
$word=mysqli_query($con,$sql_password);
$res=mysqli_fetch_array($word);
if($password1=="$res[0]"){
//修改密码
$sql1="update admin set password='$new' where username='$username'";
$alt=mysqli_query($con,$sql1);
if($alt){
echo "<script language ='javascript' type='text/javascript'>";
echo "window.location.href='login.html'";
echo "</script>";
}else{
echo "<script type='text/javascript'> ";
echo "window.alert('密码修改失败');";
echo "window.location.href='changepassword.html'";
echo "</script>";}
}
else{
echo "<script type='text/javascript'> ";
echo "window.alert('旧密码错误');";
echo "window.location.href='changepassword.html'";
echo "</script>";
}
}
else{
echo "<script type='text/javascript'> ";
echo "window.alert('用户名不存在');";
echo "window.location.href='changepassword.html'";
echo "</script>";
}
?>
比较长,和注册差不多,先查询用户名,如果存在则继续,反之这弹出警告框。然后比较旧密码是否一致。一致则修改,否则弹出警告。
退出账号
<?php
session_start();
$_SESSION=array();//清除session值
session_destroy();//清除服务器的session文件
echo "<script type='text/javascript'>";
echo "window.location.href='login.html'";
echo "</script>";
?>
开启会话,清除session,最后清除服务器的session文件,跳转首页。
注销账号(清除账号)
<?php
session_start();
$uid=(string)$_SESSION['uid'];
include('config.php');
$del_sql="delete from admin where username='$uid'";
$delete=mysqli_query($con,$del_sql);
if($delete){
echo "<script type='text/javascript'>";
echo "window.alert('注销成功');";
echo "window.location.href='login.html'";
echo "</script>";
}
$_SESSION=array();
session_destroy();
?>
开启session,删除数据库的对于数据清除session。
注意的点
- js非末尾语句之间要有分号,否则失效。
- mysqli_fetch_array默认返回数值数组
- session设置时别忘了先使用session_start()
- 注册时查询用户名可能会出现问题(可能是因为查询为空吧)