本文詳細解析聊天室表情動作處理模塊emotion.php,實現用戶表情選擇、顏色設置、私聊目標鎖定等互動功能,並包含會話驗證與數據庫狀態同步邏輯。
<?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>
此模塊展示了早期PHP應用中典型的「業務邏輯與視圖混合」模式,現代重構時建議採用MVC架構分離關注點。系列下文將探討聊天室的消息發送與實時推送機制。