index首页代码

  1. <?php
  2. session_start();
  3. //判断用户是否登录
  4. if(isset($_SESSION['admins'])){
  5. $admins = unserialize($_SESSION['admins']);
  6. }
  7. ?>
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <head>
  11. <meta charset="UTF-8" />
  12. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  13. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  14. <title>Document</title>
  15. </head>
  16. <body>
  17. <?php if(isset($admins)): ?>
  18. <a href="#" id="logout">退出</a>
  19. <?php else: ?>
  20. <a href="login.php">登录</a>
  21. <?php endif ?>
  22. </body>
  23. <script>
  24. let s=document.getElementById('logout');
  25. if(s){
  26. document.querySelector('#logout').addEventListener('click',function(event){
  27. if(confirm('确定退出?')){
  28. event.preventDefault();
  29. location.assign('handle.php?action=logout');
  30. }
  31. });
  32. }
  33. </script>
  34. </html>

登录代码login.php

  1. <?php
  2. session_start();
  3. //判断用户是否登录
  4. if(isset($_SESSION['admins'])){
  5. exit('<script>alert("已登录");location.href="login.php";</script>');
  6. }
  7. ?>
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <head>
  11. <meta charset="UTF-8">
  12. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  13. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  14. <title>login</title>
  15. <style>
  16. form{
  17. text-align: center;
  18. }
  19. fieldset{
  20. background-color:aqua;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <form action="handle.php?action=login" method="post">
  26. <fieldset style="display:inline-block;">
  27. <legend>用户登录</legend>
  28. <p><input type="email" name="email" id="" placeholder="邮箱" require></p>
  29. <p><input type="password" name="password" id="password" placeholder="不少于6位" require></p>
  30. <p><button >提交</button></p>
  31. </fieldset>
  32. <p>如果没有账号,请点击<a href="register.php">注册</a></p>
  33. </form>
  34. </html>

注册文件代码register.php

  1. <?php
  2. session_start();
  3. //判断用户是否登录
  4. if(isset($_SESSION['admins'])){
  5. exit('<script>alert("已登录");location.href="index.php";</script>');
  6. }
  7. ?>
  8. <!DOCTYPE html>
  9. <html lang="en">
  10. <head>
  11. <meta charset="UTF-8">
  12. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  13. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  14. <title>register</title>
  15. </head>
  16. <body>
  17. <form action="" method="post">
  18. <fieldset style="display:inline-block;">
  19. <legend>用户登录</legend>
  20. <p><input type="email" name="name" id="name" placeholder="昵称" require></p>
  21. <p><input type="email" name="email" id="email" placeholder="邮箱" require></p>
  22. <p><input type="password" name="password" id="password" placeholder="不少于6位" require></p>
  23. <p><input type="password" name="password1" id="password1" placeholder="二次密码必须一致" require></p>
  24. <p><button onclick='check();'>注册</button></p>
  25. </fieldset>
  26. </form>
  27. <script>
  28. async function check(){
  29. event.preventDefault();
  30. $name = document.querySelector('#name').value;
  31. $email = document.querySelector('#email').value;
  32. $password = document.querySelector('#password').value;
  33. $password1 = document.querySelector('#password1').value;
  34. if($name ===''){
  35. alert('昵称不能为空');return false;
  36. }
  37. if($email ===''){
  38. alert('邮箱不能为空');return false;
  39. }
  40. if($password ===''){
  41. alert('密码不能为空');return false;
  42. }
  43. if($password1 ===''){
  44. alert('二次密码不能为空');return false;
  45. }
  46. if($password.trim() !== $password1.trim()){
  47. alert('两次密码不一致,请重新输入');return false;
  48. }else{
  49. let url = '/0502/handle.php?action=register';
  50. const form_data = new FormData();
  51. form_data.append('name',$name);
  52. form_data.append('email',$email);
  53. form_data.append('password',$password);
  54. // 接口url
  55. const response = await fetch(url,{
  56. method: 'POST',
  57. body: form_data
  58. })
  59. const result = await response.json();
  60. if(result == 1){
  61. alert("注册成功");location.href="index.php";
  62. }else{
  63. alert("注册失败");location.href="index.php";
  64. }
  65. }
  66. </script>
  67. </html>

数据操作页handle.php

  1. <?php
  2. session_start();
  3. $db = new PDO('mysql:dbname=phpedu;port=3306;charset=utf8','root','root');
  4. $sql = 'SELECT * FROM `admin`';
  5. $statt = $db->prepare($sql);
  6. $statt->execute();
  7. $admins = $statt->fetchAll(PDO::FETCH_ASSOC);
  8. $action = $_GET['action'];
  9. switch(strtolower($action)){
  10. //登录
  11. case 'login':
  12. //确定是post请求
  13. if($_SERVER['REQUEST_METHOD'] === 'POST'){
  14. extract($_POST);
  15. $result = array_filter($admins,function($admin) use ($email,$password){
  16. return $admin['email'] === $email && $admin['password'] === md5($password);
  17. });
  18. if(count($result) === 1){
  19. //序列化匹配正确数据,存到session
  20. $_SESSION['admins'] = serialize(array_pop($result));
  21. exit('<script>alert("验证通过");location.href="index.php";</script>');
  22. }else{
  23. exit('<script>alert("邮箱或者密码错误");location.href="login.php";</script>');
  24. }
  25. }else{
  26. die('请求错误');
  27. }
  28. break;
  29. //退出
  30. case 'logout':
  31. if(isset($_SESSION['admins'])){
  32. session_destroy();
  33. exit('<script>alert("退出成功");location.href="index.php";</script>');
  34. }
  35. break;
  36. //注册
  37. case 'register':
  38. extract($_POST);
  39. $password = md5($password);
  40. $register_time = time();
  41. $sql = 'INSERT `admin` SET `name`=?,`password`=?,`email`=?,`register_time`=?';
  42. $statt = $db->prepare($sql);
  43. $statt->execute([$name,$password,$email,$register_time]);
  44. if($statt->rowCount() === 1){
  45. echo json_encode(1);
  46. }else{
  47. echo json_encode(0);
  48. }
  49. break;
  50. };

" class="reference-link">效果图

更多相关文章

  1. Fix one bug in Android(安卓)官方提供的例子
  2. Android(安卓)Zip文件解压缩代码
  3. 如何编程实现开启或者关闭GPS
  4. Android音乐播放器开发
  5. Android高手进阶教程(十七)之---Android中Intent传递对象的两种
  6. Android的DrawerLayout全屏滑动显示
  7. 写给Android开发者的Kotlin入门
  8. 8步教你打开Android之门 NDK入门教程
  9. 解决android一直在running,打不开文件,下载不了gradle包的方法

随机推荐

  1. 用 NodeJS 充分利用多核 CPU 的资源[每日
  2. IDEA + Spring Boot 的三种热加载方案,看
  3. 用 cURL 请求测试 ETag 浏览器缓存[每日
  4. 69.批量创建mysql用户
  5. 香~Spring Boot 应用也可以有注册中心。
  6. 香~Spring Boot 应用也可以有配置中心。
  7. W3C TPAC 大会上的 Service workers 内容
  8. Linux性能优化(八)——网络测试工具
  9. Spring 中的事件机制,芳芳用过都说好~
  10. Swagger 自动生成 Dubbo 服务的接口文档,