2017-08-03 15 views
2

私は、ロック、ペーパー、はさみをHTMLとPHPを使って10ラウンドで作っていました。私が遭遇した唯一の問題は、$player,$comp、および$roundは増加せず、常に初期値になります。何が問題なのでしょうか?PHP:変数がインクリメントしない

これは、PHPの一部のために私のコードです:

<?php session_start(); 

if(!isset($_SESSION['use'])) 
{ 
    header("Location:enter.php"); 
} 

if (isset($_GET['logout'])) { 
    session_destroy(); 
    unset($_SESSION['username']); 
    header("location: enter.php"); 
} 

$Computer='none'; 
$user_choice=''; 
$judgelose = array(); 
$judgewin = array(); 
$judgedraw = array(); 

$round=1; 
$player=0; 
$comp=0; 

if(isset ($_POST['choice'])) 
{ 

    $Choosefrom= array('Rock', 'Paper', 'Scissors'); 
    $Choice= rand(0,2); 
    $Computer=$Choosefrom[$Choice]; 
    $user_choice=$_POST['choice']; 

    if($user_choice == $Computer){ 
    array_push($judgedraw, 'Result : Draw'); 
    } 
    else if($user_choice == 'Rock' && $Computer == 'Scissors' || $user_choice == 'Scissors' && $Computer == 'Paper' || $user_choice == 'Paper' && $Computer == 'Rock'){ 
    array_push($judgewin, 'Result : Win'); 
    $player++; 
    } 
    else if($user_choice == 'Rock' && $Computer == 'Paper' || $user_choice == 'Scissors' && $Computer == 'Rock' || $user_choice == 'Paper' && $Computer == 'Scissors'){ 
    array_push($judgelose, 'Result : Lose'); 
    $comp++; 
    } 
} 
?> 
+3

これらの値をセッションに保存する必要があります。リセットするページを読み込むたびにセッションに保存する必要があります。 –

+0

Jonが正しいです、あなたのコメントを答えにする必要があります... – Theyouthis

答えて

0

はあなたにもか、他のセッションであなたは、彼らがリセットされるページをロードするたびにこれらの値を格納する必要があります。 PHPはページ読み込み間の値を記憶しません。それがセッションの目的です。値がセッションに存在するかどうかを確認して取得する必要があります。存在しない場合は、初期のデフォルト値を設定します。その後、変数に多くの変更を加え、最後にセッションに戻します。例:

//check if the session for somevalue exists 
if(isset($_SESSION['somevalue'])){ 
    //get it 
    $somevalue = $_SESSION['somevalue']; 
} else { 
    //set a default value if not isset 
    $somevalue = 0; 
} 

//do something with somevalue 
$somevalue++; 
//continue doing something with somevalue 

//at bottom, save somevalue back into session. 
$_SESSION['somevalue'] = $somevalue;