Search code examples
phpminecraftwhitelist

Multiple conditions not working in PHP


I'm making a test for my minecraft whitelist, I have 15 questions and every value of question must be = yes, when I have 6 conditions of questions (question1 - question6) , everything is ok and working! But when I add more than 6 conditions (I need 15 conditions for value "yes"), the script not working

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Whitelist</title>
  <style>
    body
    {
    background-image: url('img/background.jpg');
    background-repeat: no-repeat;
    background-position: top left;
    background-attachment: fixed;
    }
  </style>
</head>
<body font="Arial" background="img/background.jpg" background-repeat: "no-repeat" text="#ffffff">
<title>Chunk.cz - Whitelist</title>
</body>

<br><br>
<center><img src="img/chunk-whitelist.png">
<br><br>

<?php

$ip = 'xx.xx.xx.xx'; 

$question1 = $_POST['question1'];
$question2 = $_POST['question2'];
$question3 = $_POST['question3'];
$question4 = $_POST['question4'];
$question5 = $_POST['question5'];
$question6 = $_POST['question6'];
$question7 = $_POST['question7'];

$player = $_POST['player'];

if (!empty($_POST['player'])) {

   if ($question1 == "yes" && $question2 == "yes" && $question3 == "yes" && $question4 == "yes" && $question5 == "yes" && $question6 == "yes" && $question7 == "yes") {

  if(!in_array($param,$bad)) {


      echo '<table width="700" background="img/stone.png">';
      echo '<tr><td height="32" background="img/slab.png"></td></tr>'; 
      echo '<tr><td><center><font size="5" color="#00ff33"><b>Byl si přidán na whitelist pod nickem:</b> ', $hrac;
      echo '<br><b>IP serveru: </b>';
      echo '', $ip;
      echo '</font></center></td></tr><tr><td height="32" background="img/slab.png"></td></tr></table>';

                            $connect = mysql_connect("xx.xx.xx.xx","xxxxxx","xxxxxx");
                            if (!$connect)
                            {
                            die("NELZE SE PRIPOJIT DO DATABAZE! PROSIM OPAKUJTE POKUS POZDEJI. DEKUJI ZA POCHOPENI.");
                            }

                            $DB = mysql_select_db('chunk');

                            if(!$DB)
                            {
                            die("MySQL nemuze vybrat databazi!");
                            }  

                            if(!mysql_query("INSERT INTO whitelist (name)
                            VALUES ('$player')"))
                            {
                            die("Zadost nebyla podana, nemuzeme se spojit s databazi. Omlouvame se, zkuste to pozdeji.)");
                            }


    }
    else { // Špatná odpovìï
      echo '<table width="700" background="img/stone.png">';
      echo '<tr><td height="32" background="img/slab.png"></td></tr>';
      echo '<tr><td height="150"><center><font size="5" color="red"><b>Máš něco špatně, zkus to znova</b></font><br><br>';
      echo '<input type=button onclick="history.back()" value="Zkusit znova">';
      echo '</center></td></tr><tr><td height="32" background="img/slab.png"></td></tr></table>';
    } 
}
else {
  echo '
<table width="700" background="img/stone.png">
<tr><td height="32" background="img/slab.png"></tr></td>  
  <form method="POST">
    <tr><td>
      <center>      
          Napiš svůj nick z minecraft.net: 
            <br><input type="text" name="hrac">
      </center>
    </td></tr>
<tr><td height="32" background="img/slab.png"></tr></td>  
  <tr>
    ', /* Zaèátek otázek */' 

    <tr><td><br><br>
      <b>1. Co je to griefing?</b>
        <br><input type="radio" name="question1" value="no"> To je příkaz pouze pro administrátory, množí si tak materiál.
        <br><input type="radio" name="question1" value="no"> Group briefing - plugin na "schůze" v chatu - vytváří soukromé chatové kanály.
        <br><input type="radio" name="question1" value="yes"> Úmyslné způsobování škody jiným hráčům jakýmkoliv způsobem. Obvykle jde o ničení staveb.
    </td></tr>

    <tr><td><br><br>        
      <b>2. Když se chci k někomu podívat do domu:</b>
        <br><input type="radio" name="question2" value="no"> Pomocí bugu obejdu zamčené dveře, stejně nikdo nic nopozná.
        <br><input type="radio" name="question2" value="yes"> Požádám majitele domu, jestli by mě dál nopozval.
        <br><input type="radio" name="question2" value="no"> Nakouknu dovnitř tak, abych nomusel nic ničit, a pokud se mu to nolíbí, okamžitě odejdu.
        <br><input type="radio" name="question2" value="ne"> Prokopu se dovnitř a díru zase zacpu.
    </td></tr>

    <tr><td><br><br>         
      <b>3. Jaké mody (modifikace hry) nejsou na serveru zakázané?</b>
        <br><input type="radio" name="question3" value="ne"> Na serveru nejsou zakázané žádné mody.
        <br><input type="radio" name="question3" value="ne"> X-ray.
        <br><input type="radio" name="question3" value="yes"> Optifine, Minimapy.
        <br><input type="radio" name="question3" value="ne"> Smart moving.
    </td></tr>

    <tr><td><br><br>         
      <b>4. Jakým příkazem zjistím, kolik mám zrovna peněz?</b>
        <br><input type="radio" name="question4" value="ne"> Napíšu moderátorovi, on mi to řekne.
        <br><input type="radio" name="question4" value="ne"> Na serveru nejsou žádné peníze, jen výměnný obchod.
        <br><input type="radio" name="question4" value="ne"> /penize
        <br><input type="radio" name="question4" value="yes"> /money
    </td></tr>

    <tr><td><br><br>        
      <b>5. K čemu především slouží redstone?</b>     
        <br><input type="radio" name="question5" value="yes"> K vytváření "elektrických drátů" v logických obvodech (například na připojení dveří na páku, která je otevře).
        <br><input type="radio" name="question5" value="ne"> K ničemu, má jen zpomalovat kopání.
        <br><input type="radio" name="question5" value="ne"> K výrobě nástrojů.
    </td></tr>

    <tr><td><br><br>   
      <b>6. Co je hlavním úkolem moderátorů?</b>
        <br><input type="radio" name="question6" value="ne"> Stavět obří projekty.
        <br><input type="radio" name="question6" value="ne"> Teleportovat hráče na požádání.
        <br><input type="radio" name="question6" value="yes"> Dohlížet na dodržování pravidel ve hře.
        <br><input type="radio" name="question6" value="ne"> Rozdávat bany lidem, kteří jim odporují nebo se jim nelíbí.
    </td></tr>

    <tr><td><br><br>
      <b>7. Jak správně natěžím dřevo?</b>
        <br><input type="radio" name="question7" value"ne"> Stačí dřevo na které dosáhnu, zbytek shnije.
        <br><input type="radio" name="question7" value"ne"> Pokácím celý strom tak, aby nezůstalo vůbec žádné dřevo ani listí.
        <br><input type="radio" name="question7" value"yes"> Vykácím všechno dřevo, listí nechám a namísto kmenu dám sazeničku.
        <br><input type="radio" name="question7" value"ne"> Alespoň jeden kousek dřeva se musí nechat, aby strom dorostl.
    </td></tr>

', /*
Pokud budete chtít pøidat další otázku, tak pøipište: 

    <tr><td><br><br>
      <b>#. Nadpis Otázky:</b>
        <br><input type="radio" name="question#" value"ne"> Špatná odpovìï
        <br><input type="radio" name="question#" value"yes"> Správná odpovìï
        <br><input type="radio" name="question#" value"ne"> Špatná odpovìï
    </td></tr>

(všechny znaky "#" nahraïte poøadím otázky (napø pro 7. otázku èíslem 7))
(hodnota value mùže být yes/ne , u správné odpovìdi dejte yes (správná odpoveï mùže být pouze 1!))
*/'    
    ', /* Konec otázek */'    

<tr><td height="32" background="img/slab.png"><center><font color="red">Stisknutím tlačítka potvrzujete, že souhlasíte s <a href="http://www.chunk.cz/pravidla/">pravidly</a> serveru</font><br><input type="submit" value="Odeslat požadavek"></center></tr></td>  
  </tr>
  </table>  
</form>
';
}

?>
</center>
</html>

here is the line of conditions

if ($question1 == "yes" && $question2 == "yes" && $question3 == "yes" && $question4 == "yes" && $question5 == "yes" && $question6 == "yes" && $question7 == "yes") {

when it is like this, it works:

if ($question1 == "yes" && $question2 == "yes" && $question3 == "yes" && $question4 == "yes" && $question5 == "yes" && $question6 == "yes") {

but when I add more conditions, its not working

if ($question1 == "yes" && $question2 == "yes" && $question3 == "yes" && $question4 == "yes" && $question5 == "yes" && $question6 == "yes" && $question7 == "yes" && $question8 == "yes" && $question9 == "yes" && $question10 == "yes" ..........) {

thank you very much for help! this is for minecraft whitelist, sorry for my bad english


Solution

  • I'm not sure why adding more conditions makes your code not work, but you could do something like this:

    $answers=array('question1'=>yes,'question2'=>yes,'question3'=>no); //array of the answers received
    $count=0;
    $requiredCount=3;
    foreach ($answers as $key=>$value){
    if ($value=='yes'){
    $count++;
    }
    }
    if ($count==$requiredCount)
    {
    //process as valid
    }else{
    //process as not valid
    }

    Of course you'd want tabs in the appropriate places to make your code more readable, alas, they get stripped out here.