2017-06-16 134 views
0

我開始學習今年在學校的代碼,剛剛進入PHP。我似乎無法弄清楚如何得到一個if語句的工作。目前我正在製作一個Hangman PHP遊戲,並且只需要讓信件可以選擇一次。所以這就是我所擁有的:PHP語句不工作hangman

if($letter == $tried) 
    echo "You've already tried that one!"; 

其他一切看起來都很好。

雖然我已經把整個代碼放在了pastebin中,但它全部都是在荷蘭語中。 if語句,我指的是線122和123 https://pastebin.com/SD5js9p4

if($letter == $geprobeerd) 
    echo "<b>Die heb je al geprobeerd!</b> <font color=red></font>"; 

代碼

<html> 
<link rel="stylesheet" href="http://www.1618sergeairapetjan.in-mc.nl/po4/css/style.css"> 
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Comfortaa"> 
<body> 
</br><h2>Inleiding</h2> 
<p>Welkom bij ons PO. Voor ons vierde PO hebben wij het spel galgje gemaakt met HTML en PHP. Hier kun je het spel uitproberen. Veel plezier!</p></br> 
<?php 
$foutmelding=NULL; 
$woordenlijst=array("quiz", "archeoloog", "aquarium", "spinazie", "elftal", "grafsteen", "maquette", "zuivel", "verzekeringsmaatschappij", "algebra", "exponentieel", "pythagoras", 
"ezelsbruggetje", "oscilloscoop", "lasciviteit", "illuminatie", "afasie", "kunstmatig", "cytologie", "pragmatisch", "confabuleren", "urinoir", "xenofobie", "onderscheiden", 
"organismen", "cocosnoot", "mandarijneend", "pauwenveren", "voetschimmel", "vloekwaardig", "anthithese", "zenig", "kersenbonbon", "natuurkundige", "bioloog", "koolstofmonoxide", 
"distikstoftetraoxide", "achterlijk", "vermenigvuldiging", "verwachtingen", "quarantaine", "turquoise", "aquarel", "aquaduct"); 
if(isset($_POST["gekozen"])) 
{ 
    $gekozen_=$_POST["gekozen"]; 
    foreach($woordenlijst as $w) 
    { 
     if (md5($w)==$gekozen_) 
     { 
       $woord=$w; 
     } 
    } 
} 
else 
{ 
    $woord=$woordenlijst[array_rand($woordenlijst,1)]; 
    $gekozen_=md5($woord); 
} 

if(isset($_POST["geprobeerd"])) 
{ 
    $geprobeerd=$_POST["geprobeerd"]; 
} 
else 
{ 
    $geprobeerd=NULL; 
} 

if(isset($_POST["pogingen"])) 
{ 
    $poging=$_POST["pogingen"]; 
} 
else 
{ 
    $poging=0; 
} 
if(isset($_POST["bezig"])) 
{ 
    $punten=$_POST["bezig"]; 
} 
else 
{ 
    $lengte=strlen($woord); 
    $x=0; 

    if(!isset($punten)) 
    { 
     $punten=NULL; 
     while(($x < $lengte)) 
     { 
       $punten .= "."; 
       $x++; 
     } 
    } 
} 
if(isset($_POST["letter"]) and ($_POST["letter"]!=NULL)) 
{ 
    $letter=$_POST["letter"]; 

    $offset=0; 
    $positie = 0; 
    $positie = strpos($woord,$letter,$offset); 

    while($positie!== false) 
    { 
     $positie = strpos($woord,$letter,$offset); 
     $offset=$positie+1; 
     if($positie != '0') 
     { 
       $punten = substr_replace($punten,$letter,$positie,1); 
     } 
     else 
     { 
       if(strpos($woord,$letter,0)=='0') 
       { 
        $punten = substr_replace($punten,$letter,0,1); 
       } 
     } 
    } 

    if((strpos($woord,$letter)===false) and (isset($letter))) 
    { 
     $foutmelding="<font color=red>Niet voorkomende letter:</font> "; 
     $poging++; 
    } 
} 
else 
{ 
    if(isset($_POST["gekozen"])) 
    { 
     echo "<font color=red>Je hebt geen letter ingevuld</font>"; 
    } 
    $letter=NULL; 
} 
if($poging==8) 
{ 
    echo "Helaas, het woord was: <b>".$woord."</b>"; 
    echo '<img src="/img/8.png"><br><br>'; 
    exit; 
} 
echo $foutmelding; 
unset($foutmelding); 

$geprobeerd .= " ". $letter; 

echo "<b>".$letter."</b>"; 
echo "<h2>".$punten."</h2>"; 
echo "<b>Fouten:</b> <font color=red>".$poging."</font>"; 
echo "<br>"; 
echo "<b>Geprobeerde letters:</b> <font color=red>".$geprobeerd."</font>"; 

if($letter == $geprobeerd) 
echo "<b>Die heb je al geprobeerd!</b> <font color=red></font>"; 

$zelf = $_SERVER['PHP_SELF']; 

if($punten==$woord) 
{ 
    echo "<br><br><b>Gefeliciteerd, je hebt het geraden!</b>"; 
    exit; 
} 
echo '<br> 
<form action="'.$zelf.'" width="150" method="POST"> 
<b>Probeer de letter:<br> 
<input type="text" name="letter" size="1" maxlength="1"> 
<input type="hidden" name="gekozen" value="'.$gekozen_.'"> 
<input type="hidden" name="bezig" value="'.$punten.'"> 
<input type="hidden" name="pogingen" value="'.$poging.'"> 
<input type="hidden" name="geprobeerd" value="'.$geprobeerd.'"> 
<input type="submit" value="Probeer"></b>'; 
switch ($poging) { 
    case "1": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/1.png'>"; 
     break; 
    case "2": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/2.png'>"; 
     break; 
    case "3": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/3.png'>"; 
     break; 
    case "4": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/4.png'>"; 
     break; 
    case "5": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/5.png'>"; 
     break; 
    case "6": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/6.png'>"; 
     break; 
    case "7": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/7.png'>"; 
     break; 
    case "8": 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/8.png'>"; 
     break; 
    default: 
     echo"<br><img src='http://www.1618sergeairapetjan.in-mc.nl/po4/img/0.png'>"; 
     break; 
} 
?> 
</body> 
</html> 
+1

請解釋一下___not working___意味着在這種情況下 – RiggsFolly

+0

你需要給更多的上下文。顯示所有相關的代碼。 – Carcigenicate

+0

它似乎沒有執行代碼。當我試圖使用同一封信時,它不會給我回音。 – Serge

回答

0

你可能比較對字符串的字符。在行

$geprobeerd .= " ". $letter; 

你建立一個字符串,像這樣:

A B C 

後來,你比較這對你的用戶所選擇的信,這顯然不是字符的空格分隔字符串。

您可以使用strchrstrstr這種比較:

$found = strstr($geprobeerd, $letter); 
if($found !== false){ 

} 

您還可以使用strpos,像你這樣在腳本的開頭,或使用一個數組來存儲先前選擇的來信,in_array比較。

0

我會說你忘了{ ... }括號中有:

if($letter == $geprobeerd) { 
    echo "<b>Die heb je al geprobeerd!</b> <font color=red></font>"; 
}