PHP即使在页面重新加载后保留变量范围

时间:2016-06-06 21:17:43

标签: php html variables scope

访问第一页(page1.php)时,网站会生成1到100的随机数。并且用户将猜测该数字。

第一页包含   - 接受a的文本框    来自用户的号码和提交按钮。

如果猜测数太高或太低,第二页(page2.php)将返回给用户。该页面显示一条消息,告诉用户“太高”或“太低”。该页面还包含 一个按钮(重试按钮),允许用户返回第一页(page1.php)重新输入一个新号码 一个允许用户退出游戏的按钮。

如果猜测正确,第三页(page3.php)将返回给用户。页面显示“正确”,随机数和尝试次数。

我有这个index.php,它是所有页面的核心。这是代码。

的index.php

    <?php

$name = '';
$inputnumber = '';
$random = 33; //this is just an assumption to keep it simple
$message = '';
$guesscount = '';
if (isset($_POST['action'])) {
    $action = $_POST['action'];
}

if ($action === 'guess') {
    $guesscount = $_POST['$guesscount'];
    $inputnumber = $_POST['$inputnumber'];
    if ($inputnumber == $random) {
        $message = "Correct!";
        include 'page3.php';
    }
    if ($inputnumber > $random) {
        $message = "Too High";
        include 'page2.php';
    }
    if ($inputnumber < $random) {
        $message = "Too Low";
        include 'page2.php';
    }
}

if ($action === 'retry') {
    include 'page1.php';
}

page1.php中

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Number Guess</title>
    </head>
    <body>
        <h1>Number Guess</h1>
        <form name="myForm" action="index.php" method="post" >
            Number Guess: <input type="text" name="$inputnumber" value="<?php if(isset($inputnumber)==1){
echo $inputnumber;}else echo ""; ?>" /><br>

            <input type="submit" name="action" value="guess" />
            <hr>
            Guess Count: <?php echo $guesscount; ?>
        </form>
    </body>
</html>

使page2.php

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Number Guess</title>
    </head>
    <body>
        <h1>Number Guess</h1>
        <form name="myForm" action="index.php" method="post" >
            Message: <?php echo $message; ?>
            <input type="hidden" name="$guesscount" value="<?php echo $guesscount;?>"/><br>
           <input type="submit" name="action" value="retry" />

            <hr>
           Guess Count: <?php echo $guesscount;?>
        </form>
    </body>
</html>

page3.php

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Number Guess</title>
    </head>
    <body>
        <h1>Number Guess</h1>
        <form name="myForm" action="index.php" method="post" >
            Message: <?php echo $message; ?>
            Number of Tries: <?php echo $guesscount; ?>
           <input type="submit" name="action" value="ok" />

        </form>
    </body>
</html>

page1.php是首先加载的页面。

我遇到的挑战是,我无法始终保持$ guesscount稳定。它一直在重置我。我已经尝试了会话但无法解决它。请帮助解决它。 提前谢谢。

1 个答案:

答案 0 :(得分:1)

我不知道为什么,但我的直觉告诉我,会话在其他网页上不适合你的原因是因为你没有启动它?

所以你需要做的是:

的index.php

<?php
session_start();
$mySessionVar = $_SESSION['myVariable'];
var_dump($mySessionVar); // <- this should print myVariable
?>

page1.php中

if(isset($_SESSION['myVariable']) && $_SESSION['myVariable'] != null) {
  $mySessionVar = $_SESSION['myVariable'[;
}

您可能会收到一条错误消息,指出$ _SESSION为null或未设置,并且可以防止您只能将$ _SESSION包含在内部并使用isset方法

{{1}}