PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
PHP
[請益] 如何確保使用者確實在剛好5分鐘作答
作者:
freebug
(Freebug)
2023-01-28 20:32:17
我最近在開發一個「線上測驗」的網頁
前端配合後端PHP
線上測驗的系統要剛好在5分鐘讓使用者作答
不能提早交卷也不能遲交
雖然我可以用前端的JavaScript 計時器計時
不過這樣只能防君子不能防小人
不法人士還是可以透過開發者工具偽造請求繞過網頁的計時器
所以這問題勢必要用後端來解決
我起初的想法是在後端開始出題時先用session記錄當時的timestamp
然後之後當伺服器後端接收到任一請求時,檢查收到時的timestamp跟當初session記錄的
timestamp相減是否剛好為5分鐘
不過這樣又會有另外一個問題
因為網路傳遞請求一定會有延遲
而每次的延遲時間都不同(也會根據使用者網路情況有所差異)
所以不管前端後端好像都無解?
各位有什麼想法嗎?
作者:
bency
(æž—ç西)
2023-01-28 21:33:00
把時間存在 db 勒?
作者:
LPH66
(-6.2598534e+18f)
2023-01-28 23:31:00
我會覺得你這個前後端都要做, 前端做為正好 5 分鐘的介面後端 PHP 則檢查是否時間正確不過網路延遲這個無解, 你只能容許某個程度的誤差(例如容許超過半秒到一秒等)
作者:
Isaea
(Isaea)
2023-02-06 22:40:00
開始測驗先存時間結束在判斷?
作者:
okgogogo
( )
2023-02-09 13:35:00
以前學校的是個程式,鎖死還不能跳出程式,避免你上網查
作者: keoy7am (keoy7am)
2023-02-21 01:04:00
永遠不能相信前端,必須後端解決,以下思路供參考。推薦使用websocket. OnConnected時enqueue 到答卷列表中(如測試id 、userId、時間戳等),是否透過websocket執行交卷邏輯或僅做計時服務就看規劃,倘若使用量大我會將這做單一計時服務,交卷則透過使用測驗id 、使用者id 取得是否超時,時間永遠是該計時服務的時程故不用考慮對時。
繼續閱讀
[請益] url參數有加號,如何當搜尋條件
martin930
[請益] zend decrypt
lucier
[情報] 徵求wordpress plugin合作開發團隊
seiching
[請益] 請問如何轉換成中文?
jami520
Re: [請益] 解析container stats與log
GALINE
[請益] 解析container stats與log
isolatorAY
[情報] 微開發者寫作松活動分享
alansyue
[請益] VScode的php設定
Hadamard
[請益] 在Edge瀏覽器使用一段時間會自動登出
z604005
[請益] shell_exec無法執行
gene50814
Links
booklink
Contact Us: admin [ a t ] ucptt.com