多个条件在PHP中不起作用

时间:2013-02-05 06:49:02

标签: php minecraft whitelist

我正在测试我的我的Minecraft白名单,我有15个问题,问题的每个值必须=是,当我有6个问题条件(问题1 - 问题6)时,一切正常并且正常工作!但是当我添加超过6个条件(我需要15个条件值“是”)时,脚本无效

<!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" ..........) {

非常感谢你的帮助!这是为了我的英文恶习

1 个答案:

答案 0 :(得分: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
}

当然,您需要在适当的位置标记以使您的代码更具可读性,唉,它们会被剥离出来。