PHP注册登录修改用户模块

首先是公共模块


连接数据库 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()
  • 注册时查询用户名可能会出现问题(可能是因为查询为空吧)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值