Autor Zpráva
Houska
Profil *
Dobrý den, můžu se zeptat, zda-li někdo vidí v tomto kódu chybu. Nejspíš se mi tajné číslo neodesílá do formuláře a následně se neuloží, avšak já tam nevidím chybu, pomohl by někdo, prosím?

if (isset($_POST['tip'])) 
  {
    $tip = $_POST['tip'];
  }
  else 
  {
    $tip = false;
  }


if (isset($_POST["abc"]))
      {
        $pokus = $_POST["abc"] + 1;
      }
      else
      {
        $pokus = 1;
      }
 
if (isset($_POST['tc'])) 
          {
            $tcislo2 = $_POST['tc'];
          }
          else 
          {
            $tcislo = mt_rand(1,5000);
            $tcislo2 = $tcislo;
            var_dump ($tcislo2);
          }


if ($tip !== false && is_numeric($tip))
  { 
    if ($_POST['tip'] == $tcislo2)
        { 
            echo "<form method=\"post\">
                  <input disabled=\"disabled\" type=\"text\" name=\"c\" value=\"".$tcislo2."\" />
                  <input type=\"hidden\" name=\"abc\" value=\"$pokus\" />
                  <input type=\"hidden\" name=\"tc\" value=\"$tcislo2\">
                  </form>
                  <strong>Výborně</strong>, hledané číslo bylo opravdu ".$tcislo2." <br /> 
                  Počet pokusů: ".$_POST['pokus']." <br />";
                                         
            if ($_POST['pokus'] == 1) 
              {
                echo "Na jeden pokus? Pochvala tobě!";
              }
              else if ($_POST['pokus'] < 10) 
              {
                echo "Docela slušné uhádnout mé číslo na ".$_POST['pokus']." pokusů";
              }
              else if ($_POST['pokus'] > 10)
              {
                echo "Tak tvůj tip je katastrofa, zkus to znovu radši!";
              }                    
        }   
        else 
        { 
          echo "<form method=\"post\">
                <input type=\"text\" name=\"tip\" />
                <input type=\"submit\" name=\"tlacidlo\" value=\"ok\" />
                <input type=\"hidden\" name=\"abc\" value=\"$pokus\" />
                <input type=\"hidden\" name=\"tc\" value=\"$tcislo2\">
                </form>";
          if ($_POST['tip'] < ($tcislo2)) 
            {
              echo "Moje číslo je větší!";
            }
          else if ($_POST['tip'] > ($tcislo2)) 
            {
              echo "Moje číslo je menší!";                
            }
      
        }
  }

Moderátor Str4wberry: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
Houska
Profil *
Za to nepoužívání [pre] a [/pre] se omlouvám, až teď jsem byl poučen. :)

Moderátor Chamurappi: Ovšem na hloupý titulek jsi byl upozorněn už před odesláním. Někdo to bude muset přejmenovat.
Str4wberry
Profil
A to je celý kód? Jak se s tím pracuje? Pokud dobře vidím, tak podmínka if ($tip !== false && is_numeric($tip)) zajistí, že se při spuštění neobjeví vůbec žádný formulář k ovládání.
Houska
Profil *
No, jestliže podmínka bude splněná, to je tuším, když uživatel odešle formulář, tak se spustí ten formulář, co je v té podmínce. Nebo, že by právě tam byla chyba?
Houska
Profil *
tohle je tedy všechno, co k tomu mám. Má se jedna o hádání čísla v intervalu a nechtěl jsem používat session proměnné, tak jsem to udělal pomocí toho skrytého formuláře.
Houska
Profil *
Možná jsem to ale celé pojal špatně, zas tak úplně se v PHP taky nevyznám, právě proto se obracím na tuhle alternativu. Už jsem si nevěděl rady s tím.
lordfrikk
Profil
Jak řekl Str4wberry, ta podmínka zamezuje, aby se vůbec zobrazil formulář, takže uživatel ani nemůže začít hádat. Podmínka musí být dána takto:

a) pokud není zadán žádný tip, tak se zobrazí úvodní formulář, kde ho uživatel může zadat
b) pokud tip zadán je, tak se kontroluje, zda-li se shoduje s myšleným číslem:
1) pokud ano, zobrazí se, že uživatel uhodl
2) pokud ne, zobrazí se formulář, kde uživatel může zadat další tip, přičte se pokus
Houska
Profil *
Neuvědomil jsem si svoji chybu. Už to šlape jak má. Děkuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: