Autor | Zpráva | ||
---|---|---|---|
MilanJ Profil |
#1 · Zasláno: 17. 12. 2006, 02:17:26
Na své stránce mám formulář, který zpracovává jiný soubor PHP.
Jednotlivá políčka formuláře jsou ošetřena JS kódem, který kontroluje jejich vyplnění a správnost obsahu. Samozřejmě chci ošetřit formulář i v PHP tak, aby uživatel nemohl povinné políčko formuláře nevyplnit, když má vypnutý JavaScript Předpokládejme, že uživatel má JS vypnutý a nevyplní povinné políčko formuláře. Formulář začne začne být zpracováván soubore PHP, který byl uveden ve <form action="zpracuj.php" method="post">, najde prázdné políčko a formulář vrátí k opětovnému vyplnění se všemi už vyplněnými údaji včetně varovné zprávy, že dané políčko je třeba vyplnit. Taková je má idea, nicméně nevím, jak zařídit, aby se objevila i ta varovná hláška a vyplněné údaje, které uživatel zadal správně. Jak se to řeší? Jak se předávají hodnoty a chybové hlášky zpět do souboru s formulářem? Ano, vím, že mohu nechat zpracovat formulář sám sebe, pak to není problém, mě ale zajímá řešení, kdy formulář zpracovává jiný soubor. Budu rád za každý nápad. Díky moc.:-) |
||
djlj Profil |
#2 · Zasláno: 17. 12. 2006, 02:28:22
MilanJ
Asi bych to přesměroval zpět a do adresy bych přidal například &err=nick. U formuláře by pak bylo if($_GET['err']=="nick"){ echo "Vyplňte nick."; } |
||
WertriK Profil |
#3 · Zasláno: 17. 12. 2006, 11:04:35
Asi jiná volba než to přesměrování zpět s nějakou error zprávou nebude možná, ale při tom přesměrování musíš taky předat ty proměnné, které uživatel zadal. Cpat do GET jednotlivé proměnné je nesmyl - ty proměnné dej nejdřív do pole potom serialize() a na původní strance použij unserialize() - jen taková rada ;)
http://cz2.php.net/manual/en/function.serialize.php |
||
MilanJ Profil |
#4 · Zasláno: 17. 12. 2006, 11:52:24
Možná by nebyla špatným řešením vytvořit SESSION, stránku přesměrovat v případě chyby zpátky a na stránce s formulářem načíst SESSION do polí formuláře, stejně jako chybovou hlášku.
Otázka zní, je-li lepší, nebo řekněme korektnější, použít SESSION nebo serialize() / unserialize() |
||
nightfish Profil |
#5 · Zasláno: 17. 12. 2006, 12:01:07
dát zobrazení formuláře i jeho vyhodnocení na jednu stránku
na jejímž začátku bude $zobrazit = false; $error = ""; v případě, že skriptu nebyla zaslána žádná data, nastaví $zobrazit na true pak dojde k zpracování přijatých dat a ke kontrole správnosti v případě, že nějaká povinná hodnota chybí, nastaví se $zobrazit na true a do $error[] se přidá popis toho, co chybí (třeba jméno, příjmení) pokud bude $zobrazit == true, tak pokud $error není prázdné, vypiš chybovou hlášku s tím, co chybí (např. echo "Ve formuláři nejsou vyplněny tyto povinné položky: ".implode(", ", $error);) vypiš formulář (na to je vhodné mít buď třídu nebo funkce - např. vytvorInput($popisek, $name, $id, $velikost, $vychoziHodnota);) |
||
MilanJ Profil |
#6 · Zasláno: 17. 12. 2006, 12:07:25
nightfish
Formulář s vyhodnocení mám vytvořený a funguje jak má, teď potřebuji vytvořit formulář, který je zpracován jiným souborem. Na důvody se mě neptejte, je to na dlouhý povídání.:-) Tedy...SESSION nebo serialize() / unserialize() ? |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0