1

次の PHP コードでは、乱数が生成されていない場合は生成し、それを という変数に格納しようとしています。$numberまた、ユーザー入力を取得して に格納してい$userInputます。

送信ボタンが押されるたびに、同じページが を使用して再度呼び出され$_SERVER['PHP_SELF']ます。

$number私の問題は、一度セットしたらその値を保持したいということです。送信ボタンが何度押されても、これは現在発生していません。$number送信ボタンを押すたびに設定されます。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Number Guessing Game!</title>
    </head>
    <body>
        <?php 
            $userInput = $_POST['number'];
            if(!$number){
                 $number = rand(1, 500);
            }
            else{
                 echo "random number is $number <br>";
                 echo "you entered $userInput";
            }

            echo "<h3> $number </h3>"; //just to see if the number is changing everytime
       ?>
       <form method="post" action="<?php echo $_SERVER["PHP_SELF"];?>">
            <input type="text" name="number" /> <input type="submit" name="Submit"
            value="Submit" />
       </form>
    </body>
</html>
4

4 に答える 4

2

ページビュー間で乱数を保持するには、セッションを使用する必要があります

http://www.tizag.com/phpT/phpsessions.php/

于 2012-07-15T13:45:09.420 に答える
1

Cookie やセッションを使用しない最も簡単な方法は、フォームの隠しフィールドに値を渡すことです。送信が押されると、渡されます。

後でページに戻ったときに同じ値が必要な場合は、Cookie/セッションを使用します (つまり、ブラウザーを閉じて、後で再度開く)。送信ボタンを押したときにのみ保持する場合は、フォームの非表示フィールドを使用します。

于 2012-07-15T13:48:00.460 に答える
1

PHP セッションを実装する必要があります。$number に割り当てる番号は、設定後に呼び出されるコードでのみアクセスできます。

W3Schools PHP セッションのチュートリアル

リンクが役に立てば幸いです。

乾杯

于 2012-07-15T13:49:14.903 に答える
1

PHPがスクリプトを実行した後、変数は破棄されます。ページ全体でデータを保持するには、cookie、seesions、または sql を使用します。

于 2012-07-15T13:54:31.960 に答える