cookie猜數字遊戲(上)---------------思路分析(踩坑)
阿新 • • 發佈:2018-11-10
- 說明:使用者第一次請求頁面的時候,同時會產生一個隨機數,使用者點提交表單的時候,會將輸入的數字與第一次請求產生的數字進行一個對比。
- 問題一:如何儲存使用者每次提交的資料
我們常見的在伺服器中儲存資料的方式是通過file_put_content()函式,將使用者輸入的資料儲存在服務端的一個.txt檔案中,那麼問 題來了===========如果同一時刻有另外一個使用者也在提交表單,那麼.txt檔案中的資料就可能被另外一個使用者修改。
這裡我們用cookie將不同使用者提交的資料儲存到不同的cookie中
- 問題二:不是每次提交表單都要產生隨機數,瀏覽器如何辨別使用者提交頁面的時候是不是遊戲開始
解決方案一:我們可以通過識別使用者提交的方式是GET方式還是POST方式(如from表單裡method="get"就會有問題,這個時候每次提交的都是get請求)
解決方案二:我們可以通過提交次數來辨別,如果是第一次提交就產生隨機數,如果是第二次提交就不產生隨機數
問題三我們如何做到猜10次
方法1:另外存一個cookie['count']用來記錄,每猜一次就讓他的值+1
$count = empty($_COOKIE['count']) ? 0:(int)$_COOKIE['count']; //如果是第一次猜count=0,如果不是第一次猜count就為當前的值 if($count<10) { ........ setcookie('count',$count+1);//執行完一次就將$count加1 }else{ echo "遊戲結束,挑戰失敗"; setcookie('num'); setcookie('count'); }
方法2:將每次猜的數儲存在COOKIE中,然後判斷這個陣列的長度