【发布时间】:2016-10-06 15:04:41
【问题描述】:
网站在访问首页(page1.php)时会生成1到100的随机数。用户会猜出这个数字。
第一页包含 - 用于接受的文本框 来自用户的号码,以及一个提交按钮。
第二页(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 稳定。它一直在我身上重置。我已经尝试过会话但无法解决它。请帮助解决它。 提前致谢。
【问题讨论】:
-
会话、cookie 或数据库 ;) - 会话应该可以正常工作,为什么它不适合您?
-
会话应该可以工作,但不知道为什么不能。其他选项可能是您通过 POST 或 GET 传递变量(对其进行编码以便他们不知道数字),或者甚至使用 cookie。
-
一个会话变量是去这里的方式。不确定为什么会话变量对您不起作用,但您没有显示尝试使用它们的代码,因此我们无法帮助您处理我们看不到的代码。但是,您可以只用一个 PHP 文件而不是 3 个文件来完成大部分工作,这会简化事情。
-
@SgtAJ 我可以用一页来完成。但是当我使用多个页面时会出现问题。会话在一页上工作正常。但我需要知道如何解决这个问题。
-
@MaciejCygan 我可以用一页来完成。但是当我使用多个页面时会出现问题。会话在一页上工作正常。但我需要知道如何解决这个问题。