2015-09-02 120 views
1

PHP代码问题。PHP猜数字游戏

我通过堆叠交换挖了,但最让我找到了解决方案,是在问候的东西我有工作。我可以准确地得到输出以显示“猜测过高”或“猜测过低”的结果。但是,我卡住的地方是试图让数字更新。

我的代码是设置这样“我想lowerNumber和higherNumber之间的数字。”

我试图得到相应的变量的值更新每一个猜测是由时间。因此,如果我的电话号码是23,并且有人猜测是12,那么在下一次加载页面时,会出现“太低!数字在12到100之间”的情况。然后如果他们猜测说30,这太高了,它会输出“太高!数量在12到30之间”。

目前如果我做一个猜想,它会更新正确的值,但它改变了其他为空值。如果我设置:

$higher = 100; 
$lower = 1; 

略低于$ randomNum(目前被宣布,而不是随机的),那么它会同时更新其他更改值回1或100。

任何人都可以请解释什么,我做错了什么? 我一直在这工作了八个小时,仍然无法弄清楚我做错了什么....我将非常感激知道我需要做些什么才能使它工作。

<?php 

$randomNum = 23; 


if(isset($_POST['myGuess'])) { 
    $myGuess = $_POST['myGuess']; 
    $higher = ""; 
    $lower = ""; 

    if($myGuess > $randomNum){ 
     echo "Too high!"; 
     $higher = $_POST['myGuess']; 
     $lower = $_POST['lower']; 
    } else if ($myGuess < $randomNum){ 
     echo "Too low!"; 
     $lower = $_POST['myGuess']; 
     $higher = $_POST['higher']; 
    } else if ($myGuess === $randomNum) { 
     echo "Good job! That is my number!"; 
    } 
} else { 
$lower = 1; 
$higher = 100; 
} 

?> 
<!DOCTYPE html> 
<html> 

<header> 
<style> 
#wrapper { 
height: 450px; width: 550px; background-color: black; color: white;" 
} 
.box { 
    background-color: gray; 
    height: 400px; 
    width: 500px; 
    margin-top: 25px; 
    margin-left: 25px; 
    position: absolute; 
} 
p { 
    margin-left: 25px; 
    margin-top: 25px; 
} 
.inputs { 
    margin-top: 15px; 
    margin-left: 40px; 
} 
</style> 
</header> 

<body> 
<div id="wrapper"> 
    <div class="box"><p>I am thinking of a number between 
    <?php echo $lower; 
    ?> 
    and 
    <?php echo $higher; 
    ?> 
    .</p><br> 
    <form action="1to100.php" method="POST"> 
     <input type="hidden" name="lower" value="<?php $lower ?>"> 
     <input type="hidden" name="higher" value="<?php $higher ?>"> 
     <input type="text" name="myGuess" class="inputs"><br> 
     <input type="submit" class="inputs" value="GUESS!"><br> 
    </form> 
    </div> 
</div> 
</body> 



</html> 

回答

2

有这个代码的三个错误:

<input type="hidden" name="lower" value="<?php $lower ?>"> 
<input type="hidden" name="higher" value-"<?php $higher ?>"> 

<?php $lower<?php echo $lower,同上用$higher。在第二个值属性后面有一个 - 而不是a =。正确的代码是:

<input type="hidden" name="lower" value="<?php echo $lower ?>"> 
<input type="hidden" name="higher" value="<?php echo $higher ?>"> 
+0

我修正了 - 。另一个问题,但。就在输入的上方,我正在回应当前的更高和更低的值。 尽管如此,我还是需要在输入中回显吗? – Genko

+0

是的,在输入值属性中需要回显,因为您正在将$ lower和$ higher变量的值输出为html格式。 –

+0

echo将变量值打印到html。你可以随时使用它,它做得很好 –

1

你的问题就在这里:

<input type="hidden" name="lower" value="<?php $lower ?>"> 
<input type="hidden" name="higher" value-"<?php $higher ?>"> 

你不能打印出变量来降低高。

+0

我在上面几行回应了他们。 会有更有效的方法来回显他们吗?或者在这种情况下打印变量变得越来越低,不同于将它们回显出来? – Genko

+0

你必须在html页面上每次需要时将它们回显出来。 –

+0

得到它的工作,感谢您的帮助〜 – Genko