Autor Zpráva
rkomoras
Profil
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
Přesměrovat přes header, bylo to tu řešeno stokrát.
Casero
Profil
rkomoras
Přesměrováním té stránky sama na sebe se ztratí proměné POST ;) (header location)
rkomoras
Profil
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
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
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
když to dám na konec, nic se neděje a problém přetrvává
DJ Miky
Profil
Ten header dej do else {} bloku, za ty SQL query.
rkomoras
Profil
Dík, teď už to jede, ale zničehonic se mi přestaly zobrazovat české znaky...prve to šlo
rkomoras
Profil
už to jede..,..přidal jsem kódování
rkomoras
Profil
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
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
Před <?php mám věci od html až po body
rkomoras
Profil
Už to jede....teď už opravdu, dík
Toto téma je uzamčeno. Odpověď nelze zaslat.