2014-11-23 68 views
0

我是PHP初學者。我試圖用兩個文件編寫一個數字猜測腳本。在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

,你需要將它存儲不知何故。您可以將其添加到數據庫或使用會話。 – andrewsi 2014-11-23 21:18:28

+0

使用這許多'echo'屬性來輸出HTML並不是一個很好的方法。您的代碼將很快無法讀取。看到其他問題,如http://stackoverflow.com/questions/7054780/what-is-the-recommended-way-to-embed-html-codes-inside-php-codes – 2014-11-23 22:17:32

回答

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>"; 
+0

偉大的作品。非常感謝 – JayGatsby 2014-11-23 21:29:35

1

每個請求都是無狀態的,因此您需要一種方法來在請求之間存儲變量。在你的情況下,最簡單的方法是session variables

<?php 
session_start(); 
if (!isset($_SESSION['win'])) { 
    $_SESSION['win'] = 0; 
} 

// ... 

if ($_POST["firstdata"] == $random) { 
    $_SESSION['win'] += 1; 

    // ... 

從那裏你應該能夠找出其餘的。

1

你想看看爲你的formprocess.php文件使用$ _SESSION變量。一定要添加session_start();開幕PHP標籤之後,然後指定你的$ _SESSION變量,你贏和損失變量是這樣的:

$_SESSION['win'] = $win; 

當你每次回到頁面,變量將舉行計數。如果你想加入到這個數字(你已經做了一些檢查,以確保後),您可以添加到它,像這樣:

$_SESSION['win'] = ($_SESSION['win'] + $win); 

這將在$ _SESSION添加總量[「雙贏」]變量到$ win變量中的總量,並在$ _SESSION ['win']中給你一個新的總和。

另外一定要添加session_start();就在你的try.php文件中打開php標籤之後,否則你將失去$ _SESSION變量。