更新自查紀錄碼
對應程式: update_card_encodehash.php

業務功能
更新學生磁卡上的 encodehash(手機編碼)與 encodehash2(Email 編碼),讓學生可透過前台的「自查嗶紀錄」功能,輸入手機或 Email 驗證身分來查看自己的打卡記錄。
頁面操作
在 textarea 中輸入資料,一行一筆,每行以空格或 Tab 分隔三個欄位:
學號 手機 信箱
可額外勾選「同時更新 enter_logs 的 encodehash / encodehash2」,讓已產生的歷史打卡紀錄也同步更新。
處理邏輯
- 逐行解析,驗證每行必須有至少 3 個欄位(學號、手機、信箱),不足則中止。
- Email 驗證:使用
filter_var(FILTER_VALIDATE_EMAIL)驗證格式。 - 手機驗證:必須為
09或99開頭的 10 碼數字(99開頭留作沒手機的人產生假電話用),自動移除-。 - 學號自動轉大寫。
- 呼叫
update_card_encodehash_by_school_no()更新 cards 表的 encodehash。 - 若勾選同時更新 logs,則進一步更新
TBL_ENTER_LOGS表中該學生所有打卡紀錄的 encodehash。
備註
- 使用情境:學生反映無法自查打卡紀錄時,通常是因為手機或 Email 資料有誤或尚未建立 encodehash,此頁面可重新產生正確的編碼。
- encodehash 為 32 碼(MD5 等級),在 cards_view.php 中也用此長度判斷資料是否完整。
使用的 Functions
| Function | 定義於 |
|---|---|
update_card_encodehash_by_school_no($school_no, $phone, $email) | enter_logs/inc.php |
get_card_by_school_no($school_no) | enter_logs/inc.php |
get_card_input_by_card_id($card_id) | enter_logs/inc.php |
encode_phone_and_school_no($phone, $school_no) | enter_logs/inc.php(被 update_card_encodehash_by_school_no 內部呼叫) |
encode_email_and_school_no($email, $school_no) | enter_logs/inc.php(被 update_card_encodehash_by_school_no 內部呼叫) |
safe_db_value($s) | wp-config.php(透過 inc.php 鏈) |
$wpdb->update() | WordPress core |