Autor | Zpráva | ||
---|---|---|---|
jurra Profil * |
#1 · Zasláno: 17. 4. 2008, 07:39:37
Vytvořil jsem si script, vytvořil jsem si okénka 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.... Mám takový problém, když do jenoho okénka zadám třeba, že chci postavit 4 vojáky tak je postavím Ale když kliknu aktualizovat, tak se mi znovu odečtou 4 aniž bych něco zadával. Nevíte jak na to ? <?php session_start(); ?> <HTML> <BODY> <?php if (!isset($_SESSION["vypocet"])) { $_SESSION["vypocet"] = 100; } else { if (!isset($_SESSION["vypocet2"])) { $_SESSION["vypocet2"] = $_SESSION["vypocet"] ; } else { if ($_POST['oknossermiri'] < 0){ } else if ( $_POST['oknossermiri'] <= $_SESSION["vypocet"]) { $_SESSION["vypocet"] = $_SESSION["vypocet"] - $_POST['oknossermiri']; } else if ($_SESSION["vypocet"] == 0) { $_SESSION["vypocet"] = $_SESSION["vypocet"] * 0; }}} if ($_POST['oknosgardisty'] < 0){ } else if ( $_POST['oknosgardisty'] <= ($_SESSION["vypocet"] / 2)) { $_SESSION["vypocet"] = $_SESSION["vypocet"] - $_POST['oknosgardisty'] * 2; $_SESSION["vypocet"] = number_format ($_SESSION["vypocet"], 0,","," "); } else if ($_SESSION["vypocet"] == 0) { $_SESSION["vypocet"] = $_SESSION["vypocet"] * 0; } if ($_SESSION["vypocet"] > 0) { $_SESSION["vypocet2"] = $_SESSION["vypocet"] / 2; $_SESSION["vypocet2"] = number_format ($_SESSION["vypocet2"], 0,","," "); } echo "můžete ještě postavit ".$_SESSION["vypocet2"]." gardistů <br> "; echo " &nbs p; ".$_SESSION["vypocet"]." šermířů <br> "; echo " Máte ".$_SESSION["vypocet"]." zlatých"; ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" /> <br>1 gardista stojí 2 zlatku<br> 1 šermíř stojí 1 zlatky<br><br> postavte gardisty <input type="text" name="oknosgardisty" /><br><br> postavte šermíře <input type="text" name="oknossermiri" /> <input type="submit" name="klik" value="Postavte vojsko" /> </form> </BODY> </HTML> |
||
TSD Profil * |
#2 · Zasláno: 17. 4. 2008, 07:58:35
if ($_POST['oknosgardisty'] < 0){
} else if ( $_POST['oknosgardisty'] <= ($_SESSION["vypocet"] / 2)) { $_SESSION["vypocet"] = $_SESSION["vypocet"] - $_POST['oknosgardisty'] * 2; $_SESSION["vypocet"] = number_format ($_SESSION["vypocet"], 0,","," "); header('Location: tatostranka.php'); |
||
TSD Profil * |
#3 · Zasláno: 17. 4. 2008, 08:05:59
Chyba, omlovám se.
Princip je takový, že odchytíš, že se má provést nějaká akce - na základě $_POST, uděláš co potřebuješ a pak pomocí http://cz2.php.net/header tu stránku de facto otevřeš znovu, tentokrát už bez parametrů. Ale aby header('Location: tatostranka.php'); |
||
jurra Profil * |
#4 · Zasláno: 17. 4. 2008, 12:36:48
Jenže když to dám před hlavičku tak mi to nfunguje, píše to smyčka při přesměrování....
Tkahle to tam mám. <?php session_start(); ?> <HTML> <?php header('Location: index.php'); ?> <head><title>zlatky</title></head> <BODY> .... |
||
jurra Profil * |
#5 · Zasláno: 17. 4. 2008, 15:04:17
to mi nefunguje
|
||
TSD Profil * |
#6 · Zasláno: 17. 4. 2008, 15:14:55
<?php session_start(); ?> <?php header('Location: index.php'); ?> <HTML> <head><title>zlatky</title></head> <BODY> .... |
||
jurra Profil * |
#7 · Zasláno: 17. 4. 2008, 15:33:32
To jsem taky zkoušel a nefungovalo mi to ..
Ale vyřešil jsem to jinak ( ten script jsem zjednodušil ) A funguje mi to, ale bez tebe bych na to nepřišel. Díky fakt moc. <?php session_start(); ?> <HTML> <BODY> <?php if (!isset($_SESSION["vypocet"])) { $_SESSION["vypocet"] = 100; } else { if ($_POST['klik']) { if ($_POST['oknossermiri'] < 0){ } else if ( $_POST['oknossermiri'] <= $_SESSION["vypocet"]) { $_SESSION["vypocet"] = $_SESSION["vypocet"] - $_POST['oknossermiri']; header('Location: index.php'); } else if ($_SESSION["vypocet"] == 0) { $_SESSION["vypocet"] = $_SESSION["vypocet"] * 0; }}} echo "můžete ještě postavit ".$_SESSION["vypocet"]." šermířů <br> "; echo " Máte ".$_SESSION["vypocet"]." zlatých"; ?> <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post" /> 1 šermíř stojí 1 zlatky<br><br> postavte šermíře <input type="text" name="oknossermiri" /> <input type="submit" name="klik" value="Postavte vojsko" /> </form> </BODY> </HTML> |
||
Adam Zábranský Profil |
#8 · Zasláno: 17. 4. 2008, 16:09:25
píše to smyčka při přesměrování....
je jasný že když pokaždé co se stránka načítá dáš přesměrování na tu samou stránku, tak bude chyba v přesměrování :) |
||
TSD Profil * |
#9 · Zasláno: 17. 4. 2008, 16:20:04
Já jsem to s tím kódem nemyslel doslova.
To co tam máš teď, je špatně, nemuůže to fungovat. Takže postup je tento <?php session_start(); pokud byl formulář odeslán { - odečtu body nebo prostě provedu akci, já se v tom tvém kódu nevyznám - header('Location: index.php'); } ?> <HTML> <BODY> .. Nechce se mně to psát doslova, mně by to stálo víc času a tobě by to pomohlo míň, kdybys to měl bez práce. Každopádně příkaz header(Location.. musí být zařazen před odeslání čehokoliv do prohlížeče, jinak nefunguje. |
||
jurra Profil * |
#10 · Zasláno: 18. 4. 2008, 07:19:25
Já vím, ve své knize to mám taky,ale mě to funguje - taky to nechápu
|
||
krteczek_mimo Profil * |
#11 · Zasláno: 18. 4. 2008, 22:12:03
a za header dát exit;!
|
||
Časová prodleva: 16 let
|
0