五分钟明白PHP 聚合版登录模式 (选择帐号,邮箱,或者帐号密码登入)

本文介绍了如何使用PHP实现一个聚合登录功能,允许用户通过手机号、邮箱或账号进行登录。通过简单的HTML表单,结合PHP代码与数据库操作,实现多途径登录的便捷体验。
摘要由CSDN通过智能技术生成

五分钟明白PHP 聚合版登录模式 (同一表单手机号,邮箱,或者帐号密码登入)


在平时的登入功能中,我们有时候会遇见一个登录中,可以选择要邮箱、手机电话、或者帐号登入,今天无聊,就突然想到了这种模式,就尝试了一下,发现还是挺简单的。没有封装成类,部分就封装了函数,封装类也很贱大。

下面用代码来讲述我们的功能,手机也可以登入,邮箱也可以登入的模式

d登入

html代码



<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form action="test.php" method="post">
    <p><input type="text" name="uname" placeholder="帐号、邮箱或帐号"></p>
    <p><input type="password" name="passwd" placeholder="密码"></p>
    <p>
PHP中,为了实现用户通过选择账号直接跳转到登录页面的功能,通常会涉及到以下几个步骤: 1. **数据库存储**: 用户注册时,将账号(如用户名或邮箱)和密码等信息保存到MySQL、SQLite或其他类型的数据库表中。可以使用`mysqli`, `PDO` 或者 Laravel 的 ORM 等库来操作数据。 ```php // 示例使用PDO $pdo = new PDO('mysql:host=localhost;dbname=mydb;charset=utf8', 'username', 'password'); $stmt = $pdo->prepare("INSERT INTO users (username, password) VALUES (?, ?)"); $stmt->execute([$username, password_hash($password, PASSWORD_DEFAULT)]); ``` 2. **设置账号选择**:创建一个用户界面(HTML + PHP),提供一个下拉菜单或者按钮列表,显示用户的账号选项。这通常是通过查询数据库获取所有已注册用户的信息来填充的。 ```php <?php $users = $pdo->query('SELECT * FROM users')->fetchAll(PDO::FETCH_ASSOC); ?> <select name="selected_user"> <?php foreach ($users as $user): ?> <option value="<?php echo $user['id']; ?>"><?php echo $user['username']; ?></option> <?php endforeach; ?> </select> ``` 3. **处理选择并跳转**: 当用户从下拉菜单中选择某个账号后,可以发送一个POST请求(如果是在内页)或使用`header()`函数做GET请求,携带选中的用户ID,然后在服务器端处理这个请求,并跳转到登录页面。 ```php if ($_SERVER["REQUEST_METHOD"] == "POST") { $selected_id = $_POST['selected_user']; header("Location: login.php?userId=$selected_id"); exit; } ``` 4. **登录验证**:在`login.php`页面,检查传递的用户ID,然后验证凭据(对比数据库中的密码)。如果验证成功,可以设置session登录状态或生成 JWT token,最后跳转到对应的功能页面。 ```php if(isset($_GET['userId'])) { $selected_id = $_GET['userId']; // 验证密码... if(password_verify($_POST['password'], $hashed_password)) { // 登录成功,设置session... header("Location: dashboard.php"); exit; } } ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值