星空软件

 找回密码
 立即注册

php实现登录,退出和注册,如何实现,大佬给个答案

新库软件 | 2023-11-23 22:50:37 | 显示全部楼层 |阅读模式
1金钱
求答案

最佳答案

查看完整内容

首先,假设你有一个名为 users 的表,包含至少 username 和 password 字段。




上一篇:js数组的值判断是否为空?给个简单的实现办法
下一篇:java为什么要配置环境变量?有啥原因吗
回复

使用道具 举报

siduan | 2023-11-23 22:50:38 | 显示全部楼层
首先,假设你有一个名为 users 的表,包含至少 username 和 password 字段。

  1. CREATE TABLE users (
  2.     id INT AUTO_INCREMENT PRIMARY KEY,
  3.     username VARCHAR(50) NOT NULL,
  4.     password VARCHAR(255) NOT NULL
  5. );
复制代码
  1. <?php
  2. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  3.     // 连接数据库
  4.     $conn = new mysqli('localhost', 'username', 'password', 'database_name');
  5.    
  6.     // 检查连接
  7.     if ($conn->connect_error) {
  8.         die("Connection failed: " . $conn->connect_error);
  9.     }

  10.     // 获取用户名和密码
  11.     $username = $_POST['username'];
  12.     $password = password_hash($_POST['password'], PASSWORD_DEFAULT); // 密码加密

  13.     // 插入数据
  14.     $sql = "INSERT INTO users (username, password) VALUES ('$username', '$password')";

  15.     if ($conn->query($sql) === TRUE) {
  16.         echo "New record created successfully";
  17.     } else {
  18.         echo "Error: " . $sql . "<br>" . $conn->error;
  19.     }

  20.     $conn->close();
  21. }
  22. ?>
复制代码
  1. <?php
  2. session_start();

  3. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  4.     // 连接数据库
  5.     $conn = new mysqli('localhost', 'username', 'password', 'database_name');
  6.    
  7.     // 检查连接
  8.     if ($conn->connect_error) {
  9.         die("Connection failed: " . $conn->connect_error);
  10.     }

  11.     $username = $_POST['username'];
  12.     $password = $_POST['password'];

  13.     $sql = "SELECT id, password FROM users WHERE username = '$username'";
  14.     $result = $conn->query($sql);

  15.     if ($result->num_rows > 0) {
  16.         $row = $result->fetch_assoc();
  17.         if (password_verify($password, $row['password'])) {
  18.             // 密码匹配,登录成功
  19.             $_SESSION['loggedin'] = true;
  20.             $_SESSION['username'] = $username;
  21.             echo "Login successful";
  22.         } else {
  23.             // 密码不匹配
  24.             echo "Invalid password";
  25.         }
  26.     } else {
  27.         echo "Invalid username";
  28.     }

  29.     $conn->close();
  30. }
  31. ?>
复制代码
  1. <?php
  2. session_start();

  3. // 销毁所有会话变量
  4. $_SESSION = array();

  5. // 销毁会话
  6. session_destroy();

  7. echo "Logged out successfully";
  8. ?>
复制代码


回复

使用道具 举报

udoxob | 2023-11-23 22:53:43 | 显示全部楼层
PHP和MySQL。先创建一个用户表,然后用PHP处理表单提交。对于登录,我用$_SESSION来保存用户状态
回复

使用道具 举报

BluOrdeks1 | 2023-11-23 22:53:55 | 显示全部楼层
对于新手,我建议先理解基础的PHP和数据库交互。对于登录,可以考虑使用预处理语句来防止SQL注入
回复

使用道具 举报

omocike | 2023-11-23 22:54:08 | 显示全部楼层
用了PHP的PDO来连接数据库。对于安全性,确保使用哈希函数存储密码。我个人倾向于使用bcrypt。
回复

使用道具 举报

egaryr | 2023-11-23 22:54:23 | 显示全部楼层
确保你的登录系统对抗SQL注入、XSS攻击和CSRF攻击做好了准备。还有,使用HTTPS来保护用户数据。
回复

使用道具 举报

projshks | 2023-11-23 22:54:34 | 显示全部楼层
我建议看看PHP的框架,比如Laravel或CodeIgniter。它们提供了简化用户认证流程的工具,这样可以节省很多编码时间。
回复

使用道具 举报

1178474153 | 2023-11-23 22:54:51 | 显示全部楼层
用PHP的filter_var函数来处理
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

全站声明【必看】|小黑屋|新库软件 |网站地图

GMT+8, 2024-4-29 08:00 , Processed in 0.062804 second(s), 26 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.