Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/wix/2.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 - Fatal编程技术网

如何在PHP中保留随机值,同时使用表单提交

如何在PHP中保留随机值,同时使用表单提交,php,Php,我有一个PHP页面,它使用mt_rand()定义随机变量,然后使用html表单获取两个用户输入。根据输入的数字是否等于随机数字,输出“正确” 但是我有一个问题,当我通过提交表单中的值来重新加载页面时,我的随机值会发生变化,并且答案总是错误的。我已经找到了AJAX(停止重新加载的J-Query函数)的解决方案。我以前没有使用过Javascript,但如果需要,我会学习它。我的问题是,是否有其他方法来获取这些值并确定它们是否与我的随机值相同,或者我是否需要在提交时停止重新加载页面 我的代码如下: &

我有一个PHP页面,它使用mt_rand()定义随机变量,然后使用html表单获取两个用户输入。根据输入的数字是否等于随机数字,输出“正确”

但是我有一个问题,当我通过提交表单中的值来重新加载页面时,我的随机值会发生变化,并且答案总是错误的。我已经找到了AJAX(停止重新加载的J-Query函数)的解决方案。我以前没有使用过Javascript,但如果需要,我会学习它。我的问题是,是否有其他方法来获取这些值并确定它们是否与我的随机值相同,或者我是否需要在提交时停止重新加载页面

我的代码如下:

<html>
<?php

$x1 = mt_rand(-12,12);
$x2 = mt_rand(-12,12);


echo "$x1<br>$x2<br>";

?>

<form action="es_algebra.php" method="POST">
<input type="number" name="x1"/>
<input type="number" name="x2"/>
<input type="submit" value="Submit"/>
</form>

<?php
if ($_POST['x1'] == $x1)
{
    echo "Correct";
}
else
{
    echo "Wrong";
}

?>
</html>

将随机值存储在会话变量中

<?php
session_start();
$x1 = mt_rand(-12,12);
$x2 = mt_rand(-12,12);
$_SESSION['x1'] = $x1;
$_SESSION['x2'] = $x2;


我已经输入了您建议的代码。我收到通知:“注意:一个会话已经启动-忽略第20行C:\wamp\www\alg.php中的会话\u start()”。然而,我仍然得到了错误的答案。我发现它仍然像以前一样。它只找到新的重新加载的随机值的正确输入值。@user3788874哦,所有内容都在同一个文件中吗?那不行。第二个php标记中的所有内容都应该在另一个文件中。否则你必须重写你的代码,所以会话不是在每次页面加载时都写的。很抱歉,现在我感到困惑。如果它们在两个不同的文件中,我应该运行哪一个,它如何连接到另一个文件?我已经检查了你的答案。我只是不明白每个文件是如何相互链接的,当我将它们放在单独的文件中时,似乎什么都没有发生。@user3788874-使用最后的代码,您可以将整个文件保存为一个文件。
<?php
session_start();
if ($_POST['x1'] == $_SESSION['x1']) {
    [...]
<?php session_start(); ?>
<html>
<?php
if (!isset($_POST['submit'])) {
    // Generate random numbers
    $x1 = mt_rand(-12, 12);
    $x2 = mt_rand(-12, 12);

    // Store
    $_SESSION['x1'] = $x1;
    $_SESSION['x2'] = $x2;
}

// Debug output
echo $_SESSION['x1'] . '<br />' . $_SESSION['x2'] . '<br />';
?>
<form action="" method="post">
    <input type="number" name="x1"/>
    <input type="number" name="x2"/>
    <input type="submit" value="Submit" name="submit" />
</form>
<?php
if (isset($_POST['submit'])) {
    if ($_POST['x1'] == $_SESSION['x1']) {
        echo 'x1 correct';
    }
    else {
        echo 'x1 wrong';
    }

    echo '<br />';

    if ($_POST['x2'] == $_SESSION['x2']) {
        echo 'x2 correct';
    }
    else {
        echo 'x2 wrong';
    }
}
?>
</html>