更新自查紀錄碼

對應程式: update_card_encodehash.php

06-更新自查紀錄碼

業務功能

更新學生磁卡上的 encodehash(手機編碼)與 encodehash2(Email 編碼),讓學生可透過前台的「自查嗶紀錄」功能,輸入手機或 Email 驗證身分來查看自己的打卡記錄。

頁面操作

在 textarea 中輸入資料,一行一筆,每行以空格或 Tab 分隔三個欄位:

學號 手機 信箱

可額外勾選「同時更新 enter_logs 的 encodehash / encodehash2」,讓已產生的歷史打卡紀錄也同步更新。

處理邏輯

  • 逐行解析,驗證每行必須有至少 3 個欄位(學號、手機、信箱),不足則中止。
  • Email 驗證:使用 filter_var(FILTER_VALIDATE_EMAIL) 驗證格式。
  • 手機驗證:必須為 0999 開頭的 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