PHP实现用户登录的案例代码

下面是详细的讲解过程,包含了实现用户登录的完整攻略和两条示例说明。

1. 需求分析

首先,我们需要了解用户登录的功能模块要求,包括以下几点:

  • 用户可以输入用户名和密码进行登录
  • 登录成功后会跳转到主页或个人中心页面
  • 登录失败会提示错误信息并保留用户填写的用户名
  • 登录状态下用户不能重复登录或访问未授权的资源

2. 数据库表设计

在实现用户登录功能的前提下,需要设计一张用户信息的数据库表。例如,我们可以创建一个名为user的表,包含以下几个字段:

  • id:用户ID,自增长整数
  • username:用户名,唯一索引
  • password:密码,使用MD5加密
  • last_login_time:上次登录时间,记录用户最后一次成功登录的时间,可为空

3. PHP代码编写

在数据库表设计完成后,我们就可以开始编写PHP代码实现用户登录功能了。

a. 登录页面

我们首先需要编写登录页面,让用户输入自己的用户名和密码。




以上是登录页面的HTML代码。需要注意的是,我们将表单的提交地址指向名为`login.php`的PHP文件。

### b. 登录处理页面

当用户填写好用户名和密码后,表单会通过POST方式提交到`login.php`中进行处理。我们需要编写`login.php`的代码,验证用户输入的用户名和密码,并根据处理结果进行相应的操作。

以下是实现用户登录功能的PHP代码,包括了两个示例说明。其中,第一个示例说明实现了基本的用户登录功能,将用户登录成功后跳转到`index.php`页面;第二个示例说明在基本的用户登录功能上,增加了判断用户是否已经登录的逻辑处理。

```markdown
<?php
// 连接数据库
$con = mysqli_connect("localhost", "root", "123456", "test");
if (!$con) {
  die("连接失败: " . mysqli_connect_error());
}

// 开始会话
session_start();

// 如果是POST请求,则进行登录验证
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $username = $_POST['username'];
  $password = md5($_POST['password']);

  // 查询用户信息
  $sql = "SELECT * FROM user WHERE username = '$username' AND password = '$password'";
  $result = mysqli_query($con, $sql);

  // 验证登录信息
  if (mysqli_num_rows($result) > 0) {
    // 更新用户最后一次登录时间
    $sql2 = "UPDATE user SET last_login_time = NOW() WHERE username = '$username'";
    mysqli_query($con, $sql2);

    // 保存用户登录状态
    $_SESSION['username'] = $username;

    // 跳转到主页
    header('Location: index.php');
  } else {
    // 提示登录失败信息
    echo "用户名或密码错误";
  }
}

// 判断用户是否已经登录
if (isset($_SESSION['username'])) {
  // 用户已经登录,不能重复登录
  echo "您已经登录,无需重复登录";
} else {
  // 用户未登录,显示登录页面
  echo '<form action="login.php" method="post">
          <div>
            <label>Username:</label>
            <input type="text" name="username" value="">
          </div>
          <div>
            <label>Password:</label>
            <input type="password" name="password">
          </div>
          <div>
            <input type="submit" value="Login">
          </div>
        </form>';
}

// 关闭连接
mysqli_close($con);
?>

通过以上代码,我们实现了用户登录功能,用户可以在登录页面输入自己的用户名和密码,验证通过时会跳转到主页,验证失败时会提示错误信息。同时,我们还对用户登录状态进行了判断,避免用户重复登录或访问未授权的资源。

4. 总结

通过以上攻略和示例说明,我们通过PHP代码完成了用户登录功能的实现。需要注意的是,在实现功能过程中,我们需要进行充分的需求分析和数据表设计,以保证系统的稳定性和安全性。同时,也需要对用户输入的信息进行有效的验证和过滤,避免发生安全漏洞。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP实现用户登录的案例代码 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • PHP常用的类封装小结【4个工具类】

    PHP常用的类封装小结【4个工具类】 在PHP开发中,使用类的封装可以提高代码的复用性、可维护性和可读性。本文介绍了4种常用的PHP类封装,包括: Curl类封装 Redis类封装 MySQL类封装 日志类封装 下面将详细介绍这4种类的封装方法以及使用场景。 Curl类封装 Curl是一种网络传输工具,PHP中内置了Curl扩展,可以用来发送HTTP请求等。…

    PHP 2023年5月28日
    00
  • PHP CURL模拟GET及POST函数代码

    下面是详细讲解“PHP CURL模拟GET及POST函数代码”的完整攻略: 1. 什么是CURL? CURL 全称为“Client URL Library”,是一个用来发出 HTTP 请求的工具和库。它支持多种协议,包括 HTTP、FTP、SMTP 等等。在 PHP 中,我们可以通过使用 CURL 库来发出 HTTP 请求,包括 GET 和 POST 请求。…

    PHP 2023年5月25日
    00
  • MySQL Memory 存储引擎浅析

    MySQL Memory 存储引擎浅析 引言 MySQL 是一个开源的数据库管理系统,是目前使用最广泛的关系型数据库管理系统之一。MySQL 支持多种不同的存储引擎,每种存储引擎都有自己的特性和优势。其中,Memory 存储引擎是一种特殊的存储引擎,它可以将表数据存储在内存中,可以获得非常快的读写速度。本文将介绍 MySQL Memory 存储引擎的基本特性…

    PHP 2023年5月27日
    00
  • php单态设计模式(单例模式)实例

    关于“php单态设计模式(单例模式)实例”的完整攻略,我可以提供以下内容: 什么是单例模式? 单例模式是一种常见的设计模式,其核心思想是在整个应用程序中,确保某个类只有一个实例,并且提供单一的全局访问点,以方便其他对象使用。 单例模式的实现方式 单例模式的实现方式有很多种,其中比较常见的实现方式有两种: 饿汉模式 饿汉模式是指在程序启动时就立即加载并创建单例…

    PHP 2023年5月27日
    00
  • php header()函数使用说明

    下面是关于php header()函数使用说明的完整攻略。 一、header()函数的作用 header()函数是PHP中用于发送HTTP头部信息的函数,可以通过该函数设置HTTP响应头。在服务器返回给浏览器数据前,header()函数向浏览器发送一些头信息,例如设置文件类型、指定编码方式、设置cookie等。 二、header()函数的语法 header(…

    PHP 2023年5月27日
    00
  • PHP面向对象学习笔记之一 基础概念

    那么这里就为您详细讲解“PHP面向对象学习笔记之一 基础概念”的完整攻略。 前言 在学习PHP面向对象编程之前,先来一些基础概念的介绍。因为这将帮助我们更好地理解和学习后续的内容。 面向对象编程 面向对象编程(OOP)是一种编程范例,它把数据和对数据的操作都封装在一起,形成一个类。通过这个类,我们可以创建出若干个对象,并对对象进行操作。这样做的好处是可以提高…

    PHP 2023年5月23日
    00
  • MATLAB生成复数的方法

    生成复数在MATLAB中非常简单,可以使用以下几种方法: 1. 使用角度和模数 使用 abs 和 angle 函数来定义一个复数的模数和角度,并存储在 r 和 theta 变量中。然后使用 complex 函数将它们组合为一个复数。 r = 3; % 定义模数为3 theta = pi/4; % 定义角度为 pi/4 z = complex(r*cos(th…

    PHP 2023年5月27日
    00
  • 微信小程序预览二进制流文件的方法

    请跟我一起详细讲解“微信小程序预览二进制流文件的方法”的完整攻略。 1. 背景 在微信小程序中,我们通常需要上传并预览图片、视频等文件。但在实际开发中,存在一些二进制流文件需要预览,比如 PDF、Word 等格式的文件。那么如何在微信小程序中预览这些二进制流文件呢?接下来就为大家带来一份完整攻略。 2. 实现思路 预览二进制流文件的方法需要用到 wx.dow…

    PHP 2023年5月30日
    00
合作推广
合作推广
分享本页
返回顶部