您现在的位置是:首页 > 技术教程 正文

使用PHP创建登录界面并连接MySQL数据库

admin 阅读: 2024-03-16
后台-插件-广告管理-内容页头部广告(手机)
1 编写一个用户登录的界面
  1. html>
  2. <html>
  3. <meta charset="utf-8">
  4. <body>
  5. <form action="login.php" method="post">
  6. <fieldset>
  7. <legend>用户登录legend>
  8. <ul>
  9. <li>
  10. <label>用户名:label>
  11. <input type="text" name="username">
  12. li>
  13. <li>
  14. <label>密码:label>
  15. <input type="password" name="password">
  16. li>
  17. <li>
  18. <label>label>
  19. <input type="checkbox" name="remember" value="yes">7天内自动登录
  20. li>
  21. <li>
  22. <label>label>
  23. <input type="submit" name="login" value="提交">
  24. li>
  25. ul>
  26. fieldset>
  27. form>
  28. body>
  29. html>

 

2  编写PHP脚本

在接受登录界面发来的请求后,接受并检查用户名用户密码是否正确;

包括连接数据库命令。

  1. <?php
  2. // 告知浏览器我们是html,解码用utf-8,header()表示向客户端发送一个原始的http包头
  3. header('Content-type:text/html; charset=utf-8');
  4. // 开启Session,返回一个bool值
  5. // Session表示存储关于用户会话(session)的信息
  6. session_start();
  7. // 处理用户登录信息
  8. // $_POST[]的变量应该是请求的html页面中,通过‘name’被复制的变量
  9. if (isset($_POST['login'])) {
  10. # 接受用户的登录消息,trim去掉字符串中的空格
  11. $username = trim($_POST['username']);
  12. $password = trim($_POST['password']);
  13. // 判断提交的登录信息
  14. if (($username == '') || ($password == '')) {
  15. // 若为空,视为未填写,提示错误,并3秒后返回登录界面
  16. header('refresh:3; url=login.html');
  17. echo "用户名或密码不能为空,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
  18. exit;
  19. }
  20. // 连接数据库
  21. $con = mysqli_connect('localhost', 'root', '123456') ;
  22. // 验证数据库的连接状态
  23. if (mysqli_errno($con)) {
  24. echo "连接失败,请重试".mysqli_error($con);
  25. exit;
  26. }
  27. // 设置解码方式
  28. mysqli_set_charset($con, 'utf-8');
  29. // 设置数据库
  30. mysqli_select_db($con, 'test');
  31. // 查看输入的用户名用户密码与数据库中的值是否相同
  32. $sql = "select * from login where username = $username and password = $password";
  33. $result = mysqli_query($con, $sql);
  34. $num = mysqli_num_rows($result);
  35. if (!$num) {
  36. header('refresh:3; url=login.html');
  37. echo "用户名或密码错误,系统将在3秒后跳转到登录界面,请重新填写登录信息!";
  38. exit;
  39. } else {
  40. # 用户名和密码都正确,将用户信息存储到Session中
  41. $_SESSION['username'] = $username;
  42. $_SESSION['islogin'] = 1;
  43. // 若勾选7天内自动登录,则将其保存到cookie并设置保留7天
  44. if ($_POST['remember'] == 'yes') {
  45. setcookie('username', $username, time()+7*24*60*60);
  46. setcookie('code', md5($username.md5($password)), time()+7*24*60*60);
  47. } else {
  48. // 没有勾选,则删除cookie
  49. setcookie('username', '', time()-999);
  50. setcookie('code', '', time()-999);
  51. }
  52. echo "登录成功!";
  53. mysqli_close($con);
  54. }
  55. }
  56. ?>
3 数据库的创建

(1)记得修改root密码为“123456”,可以在PHPstudy的MySQL工具中重置密码;

(2)创建test数据库,login表格,加入用户名为“username”,密码为“password”的数据。

 以下是一些MySQL命令行的语句【命令后必须加分号】

  1. // 显示当前数据库:
  2. show databases;
  3. // 创建数据库:
  4. create database test;
  5. // 使用数据库:
  6. use test;
  7. // 展示当前数据库内容:
  8. show tables;
  9. // 创建新的表格login,并给出格式:
  10. create table login(username char(20), password char(20));
  11. // 插入数据:
  12. insert into login values(“username”, “password”);
  13. // 展示表格所有数据:
  14. select * from login;

                           

4 在浏览器中测试

(1) 输入正确的用户名,错误的密码:

   

(2)输入正确的用户名和密码:

   

标签:
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

在线投稿:投稿 站长QQ:1888636

后台-插件-广告管理-内容页尾部广告(手机)
关注我们

扫一扫关注我们,了解最新精彩内容

搜索
排行榜