当前位置: 首页> 最新文章列表> PHP实现手机短信验证码与登录日志的完整方法

PHP实现手机短信验证码与登录日志的完整方法

M66 2025-07-09

PHP实现手机短信验证码与登录日志功能概述

在当今网站系统中,为了保障用户账户安全,越来越多平台在注册与登录环节引入了短信验证码认证,并通过登录日志记录用户行为。本文将结合示例代码,讲解如何使用PHP实现这两项常用功能。

实现短信验证码功能

短信验证码是一种常见的二次验证方式,用户通过接收手机短信并输入验证码,系统再根据输入进行身份验证。以下为实现短信发送的PHP示例:

function sendSMS($phoneNumber, $code) {
    // 调用短信平台的API发送验证码短信
    $apiUrl = 'http://smsapi.example.com/send_sms';
    $postData = array(
        'phone' => $phoneNumber,
        'code' => $code
    );

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $apiUrl);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);

    return $response;
}

// 生成四位随机验证码
$code = rand(1000, 9999);

// 用户手机号
$phoneNumber = '13800138000';

// 发送验证码
$response = sendSMS($phoneNumber, $code);

// 判断发送结果
if ($response === 'success') {
    echo '验证码已发送至您的手机,请查收。';
} else {
    echo '验证码发送失败,请稍后重试。';
}

这段代码调用了第三方短信平台接口,发送包含验证码的短信,开发者可以根据自身平台的接口文档进行调整。

记录用户登录日志

为了监控用户登录行为并提高系统安全性,记录登录日志是必不可少的。下面是PHP写入登录日志的函数示例:

function writeLoginLog($userId, $loginStatus) {
    $logFile = 'login.log';
    $loginTime = date('Y-m-d H:i:s');
    $ipAddress = $_SERVER['REMOTE_ADDR'];

    $logMessage = "{$loginTime}    {$userId}    {$ipAddress}    {$loginStatus}\n";
    file_put_contents($logFile, $logMessage, FILE_APPEND);
}

// 登录成功后的调用示例
$userId = 123456;
$loginStatus = 'SUCCESS';
writeLoginLog($userId, $loginStatus);

该函数将每次登录的信息写入到日志文件中,包括时间、用户ID、IP地址及登录状态,也可以拓展至数据库记录,便于后续分析与审计。

总结

通过本文的介绍,我们学习了如何使用PHP实现短信验证码发送与登录日志记录。短信验证可有效提升用户认证的安全性,而登录日志则为系统安全提供追踪依据。这些功能的集成不仅能提升用户体验,也为平台安全运维提供了强有力的支撑。开发者可以根据项目需求进一步拓展,如增加短信验证过期时间、失败次数限制或日志可视化等功能。