Hangman PHP,但每次按下提交时我的单词都会改变

时间:2016-08-26 03:40:15

标签: php html

我正在尝试制作一个刽子手游戏,我有一个包含一些单词的数组。它成功地选择一个随机单词但每次按下提交按钮时单词都会改变,我该如何阻止它?我的代码看起来像这样

<html>
<head>
<title> Hangman </title>
</head>
<body>
<h1> Hangman <h1>   
<?php
session_start(); 
$maxAttempts = 6; 
$letters = array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o',
'p','q','r','s','t','u','v','w','x','y','z');
?>
<form name="lettersubmit" method="post" action="Hangman.php" > 
<input name="letterguess" type= "text" value="">
<input name="submit" type="submit" value="Guess a Letter!"><br>
<p> Guesses Remaining <p>
<input name="triesRemaining" type="text" value="<?php print("$maxAttempts"); ?>">
</form>
<?php
$letterguess = $_POST["letterguess"];

if($letterguess= $word){
    echo ("correct");
}
if(!isset($_POST["submit"])){
    $words  = array (
    "giants",
    "triangle",
    "particle",
    "birdhouse",
    "minimum",
    "flood",

);
}
if(isset($_POST["submit"])){
    $maxAttempts--;
}

$word = $words[array_rand($words)];
    echo $words[array_rand($words)];
?>
</body>
</html>

如果你能看到任何其他错误,请随时指出它们。谢谢Zac

1 个答案:

答案 0 :(得分:0)

这是因为您向hangman.php发送了一个新请求(我假设您正在向我们展示此页面)。这会重新加载整个页面,但代码设置单词数组除外。无论新请求是否为提交,确定要使用的随机词的代码都会运行。

如果将其添加到最初应该只运行的代码块中,它只会在启动时选择一个单词。

if(!isset($_POST["submit"])){
    $words  = array (
    "giants",
    "triangle",
    "particle",
    "birdhouse",
    "minimum",
    "flood",

    $word = $words[array_rand($words)];
);

一旦你完成了,你应该将它存储在某个地方,在这里评论的会话是单向的。表单中的隐藏字段是存储值的另一种(不太漂亮)方式,然后您可以在接收提交时从表单数据中读取。