Autor Zpráva
jurra
Profil *
Mám takový problém, vytvořil jsem si okénko s počtem vojáků, které můžete postavit
a máte 100 zlatých. Při postavení vojáků by se mi měly odečíst zlatky a když si postavím všech 100
vojáků tak mám samozřejmě 0 zlatých.... Jenže když "zkusím" zadat do formuláře ještě nějaké vojsko
tak se mi objeví znovu 100 zlatých a můžu stavět odznova.


<?php
session_start();
?>
<HTML>
<BODY>
<?php
if (!$_SESSION["vypocet"]){
$_SESSION["vypocet"] = 100;
} else {

if ( $_POST['oknossermiri'] > 0) {
if ( $_POST['oknossermiri'] < $_SESSION["vypocet"]) {
$_SESSION["vypocet"] = $_SESSION["vypocet"] - $_POST['oknossermiri'];
}} else
$_SESSION["vypocet"] = $_SESSION["vypocet"] - $_POST['oknossermiri'];
if ($_SESSION["vypocet"] == $_POST['oknossermiri']) {
$_SESSION["vypocet"] = $_SESSION["vypocet"] * 0;
}
if ($_POST["klik"]) {
}}}
echo " Máte ".$_SESSION["vypocet"]." zlatých";
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" />
1 šermíř stojí 1 zlatku<br><br>
postavte šermíře <input type="text" name="oknossermiri" />
&nbsp;&nbsp;&nbsp; <input type="submit" name="klik" value="postavit" />

</form>
</BODY>
</HTML>
Akacko
Profil
jurra
Je to způsobeno tímto kódem:
if (!$_SESSION["vypocet"])
{
  $_SESSION["vypocet"] = 100;
} 


Podmínka if (!$_SESSION["vypocet"]) je pravdiva, je li hodnota $_SESSION["vypocet"] = 0. Takže, když se dostaneš na nulu, znovu nabyde hodnoty 100.

Zkus to napsat takto:
if (!isset($_SESSION["vypocet"]))
{
  $_SESSION["vypocet"] = 100;
} 
jurra
Profil *
Díky moc,

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: