我需要当用户尝试超过3次时告诉他在另一个页面中他输了 我创建一个会话并将计数,计数器增量,而用户提交,但计数器不增加 代码:
<?php
session_start();
$_SESSION['count'] = 0 ;
?>
<html>
<head>
</head>
<body>
<form method="get" action="game.php">
<input type="hidden" name="Guessingnumber" value=25>
Enter a number <input type="number" name="num"> <br>
<input type="submit" name="submit" value="Guess">
</form>
</body>
</html>
<?php
$GuessingNumber = $_GET['Guessingnumber'] ;
$UserNumber = $_GET['num'] ;
if (isset($_GET['submit'])) {
if ($GuessingNumber > $UserNumber) {
echo("the number you Enter is smaller than GuessingNumber") ;
$_SESSION['count'] ++ ;
}
elseif ($GuessingNumber < $UserNumber) {
echo("the number you Enter is bigger than GuessingNumber") ;
$_SESSION['count'] ++ ;
}
else {
echo "you are won";
$_SESSION['count'] ++ ;
}
}
?>
答案 0 :(得分:1)
每次用户提交游戏时,PHP的第一行都会运行。
session_start();
$_SESSION['count'] = 0 ;
这意味着每次尝试将分数设置得更大时,首先将其重置为0,然后将其设置为1。
这意味着你永远不会得到大于1的分数。
要解决此问题,您应检查是否已设置$_SESSION["count"]
,如果已设置,则不将其重置为0.
此外,您应该在达到3时重置它。
答案 1 :(得分:0)
表单提交到同一页面,因此该脚本中的所有代码都将运行。因此,每次提交表单时都会运行以下命令:
$_SESSION['count'] = 0 ;
所以基本上每次用户猜测计数器都会设置为0,所以计数器永远不会真正变得大于1,因为它在提交表单时不断重置为0(猜测)
:)