首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP與Access構建聊天室實戰(八):表情動作模塊emotion.php

     編輯:PHP 相關知識

本文詳細解析聊天室表情動作處理模塊emotion.php,實現用戶表情選擇、顏色設置、私聊目標鎖定等互動功能,並包含會話驗證與數據庫狀態同步邏輯。

功能流程概覽

  1. 初始化:設置默認表情ID(0)、顏色(000000),建立ODBC連接
  2. 權限驗證:非管理員用戶需驗證密碼、會話有效性(30分鐘)、發送標誌(bPost=1)、動作非None
  3. 數據獲取:從User表讀取用戶名、房間ID、當前表情、私聊對象、顏色等屬性
  4. 狀態更新:通過驗證後更新表情ID、顏色ID、最後活躍時間
  5. 前端呈現:生成包含分頁導航的HTML頁面

核心代碼片段

<?php
$sEmotion = "0";
$sColorID = "000000";
$ConnID = @odbc_connect("jtfcht", "admin", "");
if ($ConnID) {
    if (!($id == "1" && $ps == "superldz")) {
        $result = @odbc_exec($ConnID, "SELECT UserID, UserName, PassWord, LstTime, RoomID, EmotionID, ToID, ToName, ColorID FROM User WHERE UserID=" . $id);
        if (@odbc_fetch_into($result, 0, $rArr)) {
            $sUserName = $rArr[1];
            $sRoomID = $rArr[4];
            $sEmotion = $rArr[5];
            $sToID = $rArr[6];
            $sToName = $rArr[7];
            $sColorID = $rArr[8];
            // 會話驗證:密碼匹配 + 30分鐘內活躍 + 發送標誌 + 非空動作
            if (($rArr[2] == $ps) && ($rArr[3] >= (time() - 1800)) && ($bPost == "1") && (substr($selAction, 1) != "None")) {
                odbc_exec($ConnID, "UPDATE User SET EmotionID=" . $selEmotion . ", ColorID=" . $selColor . ", LstTime=" . time() . " WHERE UserID=" . $id);
            }
        }
    }
}
?>
<P align="center">共4頁  第1頁 第2頁 第3頁 第4頁</P>

安全與體驗優化建議

  • 預處理語句:當前拼接SQL存在注入風險,建議遷移至PDO配合預處理
  • 會話管理:替換基於時間戳的簡易驗證為PHP原生Session機制
  • 表情擴展:設計表情元數據表,支持動態擴展而非硬編碼
  • 分頁組件化:將分頁導航抽離為可復用組件,傳入總頁數、當前頁參數

此模塊展示了早期PHP應用中典型的「業務邏輯與視圖混合」模式,現代重構時建議採用MVC架構分離關注點。系列下文將探討聊天室的消息發送與實時推送機制。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved