Re: [請益] submit後,亂數值跑掉

看板PHP作者 (sob)時間19年前 (2006/11/17 23:38), 編輯推噓1(101)
留言2則, 1人參與, 最新討論串5/14 (看更多)
※ 引述《foxzgerald (O⊥M)》之銘言: : ---------------------------------------------------- : 如果要避免重複,應該於產生亂數陣列之前做些判斷.. : ---------------------------------------------------- : if(!isset($_POST['n'])) // 如果表單尚未被 submit : // 產生亂數陣列 : //顯示表單 : if(isset($_POST['n'])) : // 處理亂數陣列 : ----------------------------------------------------- : 上述的流程可以確保在表單被 submit 之後,不會再次產生新的陣列 : 然而會有一個問題:如果你的亂數陣列不是儲存在 session 變數中 : 發送表單之後,雖不重複產生亂數陣列,但因變數的生命週期已過 : 所以會抓不到亂數陣列。 的確,我遇到這個困難了 : 至少有兩種解決方式,一是儲存在 session 中,另一種是將產生出 : 來的亂數陣列儲存在表當之中 : ( 例:陣列可以用 base64_encode(serialize($rand_array));轉成字串儲存, : 解碼則逆向操作 unserialize(base64_decode($_POST['rand_array'])); : 當然也可以存到資料庫或cookie中,方式不少端看你要做什麼。 有點複雜 我重新再簡化我的問題好了, 亂數陣列的處理方法實在太複雜了,我聽不太懂 功能: 產生一個亂數 用這個亂數當猜數字的題目 猜的如果比亂數小,印出:太小了 猜的如果比亂數大,印出:太大了 猜的如果等於亂數,印出:right 問題所在: 每按一次submit 亂數就會變一次.... 我要的功能是產生一個亂數後 就一直以那個亂數去猜大小 不能每按一次submit後亂數又變更 該怎麼解決? -------------------------------------- <html> <head> <title></title> </head> <body> <CENTER> <form method="post"> 請輸入搜尋的數字:<input type=text name=n> <input type=submit value=送出> </form> </CENTER> <hr> <? $num=rand(1,100); echo $num; if (isset($n)) { if ($n<$num) { echo "太小了"; continue; } elseif ($n>$num) { echo "太大了"; continue; } else { echo "right"; } } ?> </body> </HTML> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.133.142.122

11/18 00:59, , 1F
簡單來說,就是把第一次產生的亂數存起來
11/18 00:59, 1F

11/18 01:00, , 2F
session、cookie、檔案、資料庫、shm .都是可以存的地方
11/18 01:00, 2F
文章代碼(AID): #15NTTpEU (PHP)
討論串 (同標題文章)
文章代碼(AID): #15NTTpEU (PHP)