Autor | Zpráva | ||
---|---|---|---|
rkomoras Profil |
#1 · Zasláno: 21. 2. 2008, 10:29:38
S MySQL jsem začal teprve včera a zkouším přidávání do databáze:
if ($_POST['Jmeno']=="" || $_POST['Prijmeni']=="" || $vek=="") { echo "<b style=\"color:red\">Musíte vyplnit všechna políčka!</b>\n"; } else { mysql_query("CREATE TABLE person ( personID int NOT NULL AUTO_INCREMENT, PRIMARY KEY(personID), Jmeno varchar(15), Prijmeni varchar(15), Vek int )"); mysql_query("INSERT INTO person (Jmeno, Prijmeni, Vek) VALUES ('" . $_POST['Jmeno'] . "','" . $_POST['Prijmeni'] . "',' " . $vek . "')"); } Když zadám do políček jméno, příjmení a věk, tak se do databáze vloží, ale při aktualizaci stránky se záznam vloží znova. Jak tomu mám zabránit? Zkoušel jsem unset, ale nešlo to. |
||
Mastodont Profil |
#2 · Zasláno: 21. 2. 2008, 10:31:41
Přesměrovat přes header, bylo to tu řešeno stokrát.
|
||
Casero Profil |
#3 · Zasláno: 21. 2. 2008, 10:32:26
rkomoras
Přesměrováním té stránky sama na sebe se ztratí proměné POST ;) (header location) |
||
rkomoras Profil |
#4 · Zasláno: 21. 2. 2008, 10:45:08
tak jsem dal na začátek header("Location:" . $PHP_SELF ); a vyhodí mi tohle:
Warning: Cannot modify header information - headers already sent by (output started at D:\Program Files\VertrigoServ\www\mysql\tobudesranda.php:6) in D:\Program Files\VertrigoServ\www\mysql\tobudesranda.php on line 8 a pořád se přidávají |
||
Mastodont Profil |
#5 · Zasláno: 21. 2. 2008, 10:46:32
Ne na začátek, to se dává až po úspěšném zápisu. A předtím nesmíš nic poslat na výstup (echo apod.)
|
||
rkomoras Profil |
#6 · Zasláno: 21. 2. 2008, 10:48:46 · Upravil/a: rkomoras
dal jsem to na začátek, a teď se ozývá Firefox:
Smyčka při přesměrování Server přesměrovává požadavky na tuto adresu sám na sebe a to takovým způsobem, které zabraňují jejich dokončení. * Tento problém může být způsoben zakázáním nebo odmítnutím cookies. |
||
rkomoras Profil |
#7 · Zasláno: 21. 2. 2008, 10:50:15
když to dám na konec, nic se neděje a problém přetrvává
|
||
DJ Miky Profil |
#8 · Zasláno: 21. 2. 2008, 10:52:00
Ten header dej do else {} bloku, za ty SQL query.
|
||
rkomoras Profil |
#9 · Zasláno: 21. 2. 2008, 10:54:10
Dík, teď už to jede, ale zničehonic se mi přestaly zobrazovat české znaky...prve to šlo
|
||
rkomoras Profil |
#10 · Zasláno: 21. 2. 2008, 10:56:52
už to jede..,..přidal jsem kódování
|
||
rkomoras Profil |
#11 · Zasláno: 21. 2. 2008, 11:05:01 · Upravil/a: rkomoras
takže to nefunguje a ještě k tomu hlásí Warning: Cannot modify header information - headers already sent by (output started at D:\Program Files\VertrigoServ\www\mysql\tobudesranda.php:7) in D:\Program Files\VertrigoServ\www\mysql\tobudesranda.php on line 51
|
||
Casero Profil |
#12 · Zasláno: 21. 2. 2008, 11:07:35
rkomoras
"headers already sent... Pokud už byl generovaný nějaký výstup, tak už nelze používat funkce header(), setcookie() ani session_start(). Jejich volání skončí chybou. Přesvědčete se, že před začátkem <?php ?> není žádný text (ani mezera) a že nebylo nic odesláno třeba funkcemi jako echo nebo print. Pokud je text v UTF-8, tím výstupem může být i tzv. BOM signatura, vizte výše zmíněný Divný znak (čtvereček).... " FAQ |
||
rkomoras Profil |
#13 · Zasláno: 21. 2. 2008, 11:12:22
Před <?php mám věci od html až po body
|
||
rkomoras Profil |
#14 · Zasláno: 21. 2. 2008, 11:13:39 · Upravil/a: rkomoras
Už to jede....teď už opravdu, dík
|
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0