Autor Zpráva
lukasik
Profil
<?php
$cislo = rand(129,572);
echo "Kontrolní kód " . $cislo;
?>
<form action="captcha.php" method="get">
<input type="text" name="cislo">
<input type="submit" value="Potvrdit">
</form>
<?php
if($_GET["cislo"] == $cislo)
echo "Kód je opsán správně" ;
else echo "Byl zadán špatný kód";
?>

Ten kód mi ještě před zadáním čísla hlási
nesplněněou podmínku a po zadání správnéo kódu nevypíše to co má ..
A já netuším proč :( jsem začátečník
Casero
Profil
lukasik
Po každém načtení stránky se ti generuje nové náhodné číslo, které už není stejné jako původní. A hned na začátku je $_GET prázdný (neiniciovaný), takže se samozřejmě nerovná danému číslo.

EDIT: možné řešení jsem napsal ob příspěvěk níže
Majkl578
Profil
<?php
$cislo = rand(129,572);
echo "Kontrolní kód " . $cislo;
?>
<form action="captcha.php" method="get">
<input type="text" name="cislo">
<input type="submit" value="Potvrdit">
</form>
<?php
if(isset($_GET["cislo"])) {
  if($_GET["cislo"] == $cislo) {
    echo "Kód je opsán správně" ;
  } else {
    echo "Byl zadán špatný kód";
  }
}
?> 
Casero
Profil
lukasik
Takto by to mohlo vypadat:
<?php
$cislo = rand(129,572);
echo "Kontrolní kód " . $cislo;
?>
<form action="captcha.php" method="get">
<input type="text" name="cislo">
<input type="hidden" name="cislo_kontrola" value="<?php echo $cislo;?>">
<input type="submit" value="Potvrdit">
</form>
<?php
if (isset($_GET["cislo"]) {
  if ($_GET["cislo"]== $_GET["cislo_kontrola"])
   echo "Kód je opsán správně" ;
  else echo "Byl zadán špatný kód";
}
?> 
lukasik
Profil
jo jasný díky

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: