php猜猜游戏

时间:2017-10-05 18:58:48

标签: php html session

我用php写了一个猜谜游戏,但我有一个问题

我需要当用户尝试超过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'] ++ ; 


  }

 } 



 ?>

2 个答案:

答案 0 :(得分:1)

每次用户提交游戏时,PHP的第一行都会运行。

session_start();   

$_SESSION['count'] = 0 ;

这意味着每次尝试将分数设置得更大时,首先将其重置为0,然后将其设置为1。

这意味着你永远不会得到大于1的分数。

要解决此问题,您应检查是否已设置$_SESSION["count"],如果已设置,则不将其重置为0.

此外,您应该在达到3时重置它。

答案 1 :(得分:0)

表单提交到同一页面,因此该脚本中的所有代码都将运行。因此,每次提交表单时都会运行以下命令:

$_SESSION['count'] = 0 ;

所以基本上每次用户猜测计数器都会设置为0,所以计数器永远不会真正变得大于1,因为它在提交表单时不断重置为0(猜测)

:)