當前位置: 首頁> 最新文章列表> 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實現短信驗證碼發送與登錄日誌記錄。短信驗證可有效提升用戶認證的安全性,而登錄日誌則為系統安全提供追踪依據。這些功能的集成不僅能提升用戶體驗,也為平台安全運維提供了強有力的支撐。開發者可以根據項目需求進一步拓展,如增加短信驗證過期時間、失敗次數限製或日誌可視化等功能。