祝贺页面没有显示猜数游戏中的变量

时间:2013-04-05 02:42:44

标签: php html

我有一个用于数字猜谜游戏的php脚本和用于祝贺页面的html脚本。如果猜测正确,游戏将结束,祝贺页面将打开。在php中,我有一个变量$ prize = 1000-100 * $ _POST ['tries'],这样如果第一个猜测是正确的,玩家将赢得$ 1000;如果玩家有第二次猜测,奖金将减少100美元,依此类推。这个变量保存在php的隐藏字段中,作为$ _POST ['prize']。我希望最后的奖项可以在祝贺页面上打印出来,但它没有按照我的预期运作。我在HTML中做错了吗?谢谢你们,玛丽亚。

guess.php:

<?php
if(isset($_POST['number'])) {
   $num = $_POST['number'];
} else {
   $num = rand(1,10);
}
if(isset($_POST['prize'])) {
   $prize =1000-100 * $_POST['tries'];
} else {
   $prize = 900;
}
$tries=(isset($_POST['guess'])) ? $_POST['tries']+1: 0;
if (!isset($_POST['guess'])) {
    $message="Welcome to the Guessing Game!";
} elseif (!is_numeric($_POST['guess'])) {
    $message="You need to type in a number.";
} elseif ($_POST['guess']==$num) {
    header("Location: Congrats.html");
    exit;
} elseif ($_POST['guess']>$num) {
    $message="Try a smaller number";
} else {
    $message="Try a bigger number";
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Guessing Game</title>
</head>
<body>
<h1><?php echo $message; ?></h1>
<p><strong>Guess number: </strong><?php echo $tries; ?></p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
<p><label for="guess">Type your guess here:</label><br/>
<input type="text" id="guess" name="guess" />
<input type="hidden" name="tries" value="<?php echo $tries; ?>"/><br/>
<input type="hidden" name="number" value="<?php echo $num; ?>"/><br/>
<input type="hidden" name="prize" value="<?php echo $prize; ?>"/>
</p>
<button type="submit" name="submit" value="submit">Submit</button>
</form>
</body>
</html>

congrats.html:

<! DOCTYPE html>
<html>
<header>
<title>Congratulation!</title>
<body>Congratulation!<br/>
You Won <?php echo $_POST['prize']; ?> dollars!
</body>
</header>
</html>

2 个答案:

答案 0 :(得分:1)

看起来您的脚本可以正常工作,但您需要将congrats.html更改为congrats.php,因为html是静态的,而php是动态的。此外,您可能希望使用会话,因为任何人都可以检查元素并更改值。

答案 1 :(得分:0)

您只需要使用GET请求或会话将值传递到congrat页面。我建议使用会话,这样人们就无法改变奖金价值。

请在此处修改此部分:

} elseif ($_POST['guess']==$num) {
    $_SESSION['prize'] = $_POST['prize'];
    header("Location: Congrats.php");
    exit;
}

然后(您需要将恭喜页面更改为php页面以使用会话btw启用php)

Congrats.php

<! DOCTYPE html>
<html>
<header>
<title>Congratulation!</title>
<body>Congratulation!<br/>
You Won <?php echo $_SESSION['prize']; ?> dollars!
</body>
</header>
</html>

PS:会话还需要两个文档顶部的session_start()。