在特定尝试后显示消息

时间:2012-08-13 10:56:11

标签: php session

我,我只是在学习PHP,作为一个自己的项目我正在开发一个小游戏,其中用户猜测从1到100的数字。 如果他是正确的,那么它显示相同,否则它显示答案。 现在我将此限制为三次尝试,我希望用户在第三次尝试后看到“你的3个尝试结束”的消息。 连同“再试一次”按钮会破坏会话并允许他重新开始游戏。请帮助我。

代码如下:

<?php

$rand= rand(1,100);

$guess=$_POST['guess'];
$submit=$_POST['submit'];
session_start();

if(isset($submit)) {

if (!isset($_SESSION["attempts"])) $_SESSION["attempts"] = 0;

if ($_SESSION["attempts"] < 3) {

    if($guess<1 ||$guess>100) {
        echo "your guess must be a number between 1 and 100";
    }
    elseif($guess!=$rand)
    {
        echo "Incorrect,the correct answer is".$rand;
        $_SESSION["attempts"] = $_SESSION["attempts"] + 1;
    }
    else
    {
        echo "That is correct!";
    }
}

}
else
{
    unset($_SESSION["attempts"]);
    include_once('game.php');
}

?>

2 个答案:

答案 0 :(得分:1)

你做了所有这些并且不知道如何添加1行?

if ($_SESSION["attempts"] < 3) {
    ...
} else {
    echo '3 tries are over, game over.';
    session_destroy();
    ...
}

答案 1 :(得分:0)

如果有会话,请不要在每次提交时取消设置会话。这样你就永远不会计算尝试,因为它们总是由未设置重置。

以下是您的代码,其中未设置已注释,并添加了“3次尝试”消息。

  

     

$猜= $ _ POST [ '猜']; $提交= $ _ POST [ '提交'];在session_start();

     

if(isset($ submit)){if(!isset($ _ SESSION [“attempts”]))   $ _SESSION [“attempts”] = 0;

     

if($ _SESSION [“attempts”]&lt; 3){

     

if($ guess&lt; 1 || $ guess&gt; 100){echo“你的猜测必须是一个数字   1和100“;

     

} elseif($ guess!= $ rand){echo“不正确,正确答案   是“。$ rand; $ _SESSION [”尝试“] = $ _SESSION [”尝试“] + 1;

     

}

     

else {echo“这是正确的!”;

     

}

     

}其他{

     回声“你的3次尝试已经结束”;

     

}

     

}其他{

     

//未设置($ _ SESSION [ “尝试”]); include_once( 'game.php');

     

}