2013-02-05 3 views
-1

Я делаю тест на свой белый список minecraft, у меня 15 вопросов, и каждое значение вопроса должно быть = да, когда у меня есть 6 условий вопросов (question1 - question6), все в порядке и работать! Но когда я добавляю более 6 условий (мне нужно 15 условий для значения «да»), сценарий не работаетМножественные условия, не работающие в PHP

<!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> 

здесь линия условий

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

, когда это так, это работает:

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

но когда я добавляю больше условий, ее не работает

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

большое спасибо за помощь! это для Minecraft белый список, извините за мой плохой английский

+1

Это ваша карма за плохой дизайн кода, я думаю, у вас есть опечатка где-то –

+0

Знаете ли вы, сколько здесь вопросов? –

+0

oh ... 'else { echo '' use 'else {?>', Потому что у вас возникнут проблемы с этим, теперь моя ставка заключается в том, что если вы печатаете_r ($ _ POST); вы увидите только 6 q-ns :) –

ответ

0

Я не уверен, почему добавление больше условий делает ваш код не работает, но вы могли бы сделать что-то вроде этого:

$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
}

Конечно, вы» d хотите, чтобы вкладки в соответствующих местах делали ваш код более удобочитаемым, увы, здесь они убираются.

Смежные вопросы