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

看板PHP作者 (O⊥M)時間19年前 (2006/11/16 19:27), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/14 (看更多)
※ 引述《saininniang (sob)》之銘言: : ※ 引述《alpe (薛丁格的貓)》之銘言: : : 你先看看你的程式流程... 你就會發現... : : 產生亂數的程式是" A " 好了 : : show html 是 " B " : : check number in array " C ". : : A - B - C -> html(client)-post-> A - B - C (問題是你只要跑 C 這段) : 抱歉 : 我不懂你說的意思 : 我重新陳述我的程式概念 : part1:建立陣列,用for迴圈丟亂數給陣列,如此一來,產生了一組亂數陣列 : part2:按submit後,去處理亂數陣列(做一些判斷等功能) : 我現在的問題是 : 按submit後,那整組亂數陣列又會變成新的一組亂數陣列 : 這樣的話,不是我原先要的那組亂數陣列 : 我不知道要如何改進 你的程式.. 每次 loading.. 都會重複執行黃色的區塊 所以才會一再產生新的陣列.. ---------------------------------------------------- // 產生亂數陣列 // 顯示表單 if(isset($_POST['n'])) // 處理亂數陣列 ---------------------------------------------------- 如果要避免重複,應該於產生亂數陣列之前做些判斷.. ---------------------------------------------------- if(!isset($_POST['n'])) // 如果表單尚未被 submit // 產生亂數陣列 //顯示表單 if(isset($_POST['n'])) // 處理亂數陣列 ----------------------------------------------------- 上述的流程可以確保在表單被 submit 之後,不會再次產生新的陣列 然而會有一個問題:如果你的亂數陣列不是儲存在 session 變數中 發送表單之後,雖不重複產生亂數陣列,但因變數的生命週期已過 所以會抓不到亂數陣列。 至少有兩種解決方式,一是儲存在 session 中,另一種是將產生出 來的亂數陣列儲存在表當之中 ( 例:陣列可以用 base64_encode(serialize($rand_array));轉成字串儲存, 解碼則逆向操作 unserialize(base64_decode($_POST['rand_array'])); 當然也可以存到資料庫或cookie中,方式不少端看你要做什麼。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.199.121 ※ 編輯: foxzgerald 來自: 140.119.199.121 (11/16 19:45)
文章代碼(AID): #15N4i4wK (PHP)
討論串 (同標題文章)
文章代碼(AID): #15N4i4wK (PHP)