Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 随机数重置_Php_Post_Random - Fatal编程技术网

Php 随机数重置

Php 随机数重置,php,post,random,Php,Post,Random,我的随机数在页面加载时生成,但在用户单击“猜测”按钮时似乎会重置。我还有很多东西要做,但最后我希望用户能够进行多次猜测来猜测随机数。我希望它在页面第一次出现时生成,并且在正确猜测之前保持不变。我不确定我做错了什么,只是开始了这个项目。如果你回答,也请解释,因为我正在努力学习我在做什么。谢谢大家! <!doctype html> <html> <head> <meta http-equiv="Content-Type" conten

我的随机数在页面加载时生成,但在用户单击“猜测”按钮时似乎会重置。我还有很多东西要做,但最后我希望用户能够进行多次猜测来猜测随机数。我希望它在页面第一次出现时生成,并且在正确猜测之前保持不变。我不确定我做错了什么,只是开始了这个项目。如果你回答,也请解释,因为我正在努力学习我在做什么。谢谢大家!

<!doctype html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>PHP Homework 2</title>
        <link rel="stylesheet" href="styles/styles.css">
    </head>

    <body>
        <section id="main">
            <h1>Play the Guessing Game!</h1>
            <section id="left">
                <h2>Take a Guess!</h2>
                <form action="mine.php" method="post">
                    <div id="guessBox">
                        <label id="guessLB">Your Guess:</label>
                        <input id="guessTB" class="num" type="number" name="guessTB" max="1000" min="1">
                        </input>
                    </div>
                    <input type="submit" id="guessButton" name="guessBTN" value="Guess" />
                </form>
            </section>
            <section id="right">
                <h2>Game Stats</h2>
                <?php 

                    if(isset($_POST['guessTB'])) 
                    {
                        $randomNum = $_POST['guessTB'];
                    } 
                    else 
                    {
                        $randomNum = rand(1,100);
                    }                       

                    echo "<p>Random Number: $randomNum</p>";
                ?>      
            </section>
        </section>          
    </body>
</html>

你能做的就是使用会话。在每次加载时检查您是否在会话中设置了它,如果未设置,则生成新的数字并设置它,然后检查用户输入的内容并比较这两个数字。这也可以通过饼干来实现。您可以做的另一件事是使用js。加载时,将生成的数字存储在某个js变量中,不要使用表单。在按钮上,单击获取输入字段的值,并与存储在变量中的值进行比较。

单击按钮将重新加载调用随机数生成器的页面。那不是你期望的吗?不,那不是我想要的。我还有很多东西要做,但最后我希望用户能够进行多次猜测来猜测随机数。我希望它在页面第一次出现时生成,并在正确猜测之前保持不变。默认情况下,HTTP是无状态的。Web服务器“记住”用户信息的方式(在本例中是正确的数字)通常是通过一个。@JonathonReinhart-谢谢-我阅读了会话,认为如果我生成随机数,将其设置为会话变量并检查其设置是否正确,这将起作用。对吗?但我在哪里真正做到了这一代人不会因为每一个新的猜测而重演?
<?php
                    session_start();

                    $randomNum = $_SESSION['randomNum'];
                    $guess = $_POST['guessTB'];

                    if(!isset($_SESSION['randomNum']))
                    {
                        $_SESSION['randomNum'] = rand(1,1000);
                    }
                    else
                    {   
                        if($guess < $randomNum)
                        {
                            echo "<p>Your Guess is Too Low! Try Again!</p>";
                        }

                        else if($guess > $randomNum)
                        {
                            echo "<p>Your Guess is Too High! Try Again!</p>";
                        }

                        else
                        {
                            echo "<p>You Won!</p>";
                            $_SESSION = array();
                            session_destroy();
                        }
                    }           

                    echo "<p>Guess: $guess</p>";
                    echo "<p>Random Number: $randomNum</p>";
                ?>