2014-01-24 18 views
0

我正在MODX Revo中開發一個站點。我在網站上有一個表單,其中有一個部分可以生成1到5之間的2個隨機數字,並且有一個框會要求用戶輸入2個數字的總和。刷新頁面前檢查PHP中2個隨機數的總和

這一切都很好,但是當我檢查他們輸入的內容是否等於兩個隨機數時,兩個隨機數已經發生了變化(當頁面刷新爲Submit按鈕時),所以我不能檢查。

我產生了2個隨機量,並檢查片段

$test = $_POST['test']; // result of user input 
$random1 = mt_rand(1,5); 
$random2 = mt_rand(1,5); 
$maths_result = $random1+$random2; 
if($test != $maths_result) 
     { 
      // display error message here 
     } 

所以,我怎麼能檢查2個隨機量的總和頁面被刷新之前他們對這樣的用戶輸入值。任何幫助或建議將不勝感激。

謝謝

+0

是讓用戶(bindly)目標猜模具它投之前..? – user2864740

回答

0

將隨機數的總和放在會話變量中。然後您可以在下一頁加載時訪問它。

這裏有一個基本的例子:

<?php 
session_start(); 

if ('POST' !== $_SERVER['REQUEST_METHOD']) { 
    $random1 = mt_rand(1,5); 
    $random2 = mt_rand(1,5); 
    $_SESSION['math_result'] = $random1+$random2; 
} 
else { 
    $test = (int) $_POST['test']; 
    if ($test !== $_SESSION['math_result']) { 
    // fail 
    } 
} 
+0

是的,這似乎很明顯,但我在同一頁面上做所有事情,所以我會做同樣的事情? –

+0

是的,這是專爲在一頁上工作而設計的。它檢查頁面是否發佈。如果不是,它會生成要猜測的數字。如果是這樣,它將提交的值與保存的值進行比較,並在出現錯誤時報告。 –

+0

謝謝約翰。一直在玩這個今天,並得到它的工作。 –