我是PHP的初学者。我试图用两个文件写一个数字猜测脚本。
try.php
<?php
echo "<html><head><title>Calculator Game From 1998</title></head><body>";
echo "<h1>Please Guess The Answer</h1>";
echo "<form name = \"myfirstform\" action = \"formprocess.php\" method = \"POST\">";
echo "Enter Integer Between 1-5<br>";
echo "<input type = \"text\" name = \"firstdata\">";
echo "<br> <input type= \"submit\" value = \"submit\">";
echo "</form>";
echo "</body></html>";
?>
formprocess.php
<?php
$random = rand(1, 5);
echo "<html><head><title>Answer</title></head><body>";
if ($_POST["firstdata"] == $random) {
echo "<h1><font color=\"green\">Congrulations!</h1></font><br>";
echo "<h2>Answer was: </h2>";
echo $random;
echo "<br>";
echo "<a href=\"try.php\">new game</a>";
}
else {
echo "<h1><font color=\"red\">Nope wrong answer</h1></font><br>";
echo "<h2>Answer was: </h2>";
echo $random;
echo "<br>";
echo "<a href=\"try.php\">new game</a>";
}
echo "</body></html>";
?>
问题是我想为每位球员保持胜利和数据。我尝试添加变量
$win = 0;
$lost = 0;
并尝试在if部分增加一个。但它不起作用,因为刷新页面后它会再次为0。
我该怎么做?
答案 0 :(得分:1)
每个请求都是无状态的,因此您需要一种在请求之间存储变量的方法。在您的情况下,最简单的方法是使用session variables。
<?php
session_start();
if (!isset($_SESSION['win'])) {
$_SESSION['win'] = 0;
}
// ...
if ($_POST["firstdata"] == $random) {
$_SESSION['win'] += 1;
// ...
从那里你应该能够弄清楚其余部分。
答案 1 :(得分:1)
您想要查看为formprocess.php文件使用$ _SESSION变量。一定要添加session_start();在打开php标签之后,然后将$ _SESSION变量分配给你的输赢变量:
$_SESSION['win'] = $win;
每次返回页面时,变量都会保留计数。如果你想添加到那个数字(在你完成一些检查以确定之后),你可以像这样添加它:
$_SESSION['win'] = ($_SESSION['win'] + $win);
这会将$ _SESSION ['win']变量中的总金额添加到$ win变量的总金额中,并在$ _SESSION ['win']中为您提供新的总金额。
还要确保添加session_start();在你的try.php文件中打开php标签之后,你也会丢失$ _SESSION变量。
答案 2 :(得分:1)
一种简单的方法是使用会话。您可以使用$_SESSION
变量来跟踪分数。 $_SESSION
变量存储在服务器上,用户计算机上的Cookie用于将浏览器会话与用户的$_SESSION
变量相匹配:
作为formprocess.php
的第一行,请加上:
<?php
session_start();
if (!isset($_SESSION['wins']) || !isset($_SESSION['losses'])) {
$_SESSION['wins'] = 0;
$_SESSION['losses'] = 0;
}
然后,在你的if
陈述中,你会增加胜负:
if ($_POST["firstdata"] == $random) {
$_SESSION['wins']++;
// other stuff...
} else {
$_SESSION['losses']++;
// other stuff
}
echo "<p>You've won {$_SESSION['wins']} games and lost {$_SESSION['losses']}.</p>";