Autor | Zpráva | ||
---|---|---|---|
one Profil |
#1 · Zasláno: 15. 6. 2007, 13:55:43
Čau, mám celkem závažný problém, a nenapadá mě řešení jak to udělat, mám
strukturu stránky ve tvaru: <html> <head> <body> <hlavicka> <levé menu> <hlavní div> <pravé menu> <patička> a v hlavním menu mám registraci, a když se nesplní podmínka tak tam mám zobrazení hlášky + exit(); aby se script neprováděl dál a nedošlo tak k odeslání uživatele do db bez žádných nebo špatných informací, no jo jenže když tak mám exit() tak se logicky nemůže načíst pravé menu a patička :( a mně nenapadá způsob jak to vyřešit, ja vim že je to možná triviální, ale holt mě momentálně nic nenapadá, takže potřebuji radu... bylo mi porazeno, že mám zkusit využít vyjímky (exceptions). můžete mi na to napsat menší příklad? děkuji |
||
Karlik1985 Profil * |
#2 · Zasláno: 15. 6. 2007, 13:57:33
nedavej tam exit ale zabal to do ifu
|
||
DJ Miky Profil |
#3 · Zasláno: 15. 6. 2007, 13:59:13
Vyřeš to třeba tak, že pokud se nesplní podmínka, tak se zobrazí jen hláška bez dalšího obsahu (a bez exit;) a tudíž se pravé menu a patička načtou.
To znamená: hlavička levé menu <?php if($podminka_registrace) { echo 'obsah stránky'; } else { echo 'Chyba!'; } ?> pravé menu patička |
||
one Profil |
#4 · Zasláno: 15. 6. 2007, 16:38:47 · Upravil/a: one
no když tam dám jenom echo "blablabla"; tak se sice hláška zobrazí ale formulář nebo cokoliv jiného se odešle :-(
edit: přiklad: hlavička atd. ... //kontrola, zda název účtu obsahuje jen povolené znaky if (!eregi('^[_a-zA-Z0-9.-+]+$', $accountname)){ echo "chyba!"; } ... pravé menu atd. |
||
bukaj Profil |
#5 · Zasláno: 15. 6. 2007, 17:02:34
a co takto:
if (eregi('^[_a-zA-Z0-9.-+]+$', $accountname)){ ... //zpracování výsledků ... }else{ echo "chyba"; } |
||
one Profil |
#6 · Zasláno: 15. 6. 2007, 18:15:40
no to jsem taky chtěl zkusit, ale co myslíš pod tím 'zprácování výsledků', protože buď tam jsou blbé znaky a tak se zobrazí chyba a nebo to je v pořádku a pokračuje se dál ne? nebo se bych měl hodit u toho že je to v pořádku, protože tam pak mám další podmínky, např.:
if($_POST['accountname'] && strlen($_POST['accountname']) < 3){ echo "chyba"; $accountname=''; } omlouvám se za to, že jsem tě nejspíš nepochopil, jak si to myslel... |
||
bukaj Profil |
#7 · Zasláno: 15. 6. 2007, 18:27:43 · Upravil/a: bukaj
one
to //zpracování výsledků je např. uložení údajů do databáze, do souboru, vypsání apod. myslel jsem tím postupně do sebe ty kontroly vnořovat, takže například: if (eregi('^[_a-zA-Z0-9.-+]+$', $accountname)){ if($_POST['accountname'] && strlen($_POST['accountname']) > 3){ ... //tady může být další ověření nebo už samotné zpracování ... }else{ echo "chyba ohledně délky $_POST['accountname']...."; } }else{ echo "chyba"; } prostě, kontroloval bys, jestli to nějaká ta položka odpovídá a pokud ano, testuješ dál, pokud ne, vypíšeš chybu. a takhle postupně zanořuješ podmínky do sebe až se dostaneš k tomu, že je vše ověřeno, a pak teprve zpracuješ |
||
one Profil |
#8 · Zasláno: 15. 6. 2007, 18:57:21
jo takhle, ok to zkusím, díky moc ;)
|
||
one Profil |
#9 · Zasláno: 15. 6. 2007, 20:40:45
if(eregi('^[_a-zA-Z0-9.-+]+$', $accountname)){} {
if($_POST['accountname'] && strlen($_POST['accountname']) > 3) { ...vložení uživatele do databáze }else{ $accountname=''; echo "název účtu je moc krátký"; } }else{ echo "název účtu obsahuje nepovolené znaky"; } hlásí mi to parse na vyznačeném místě, myslel jsem si že to nebude v pořádku, že tam bude problém s těma závorkama, ale udělal jsem to podle tebe, nebo jsem tak něco zkonil? :) |
||
bukaj Profil |
#10 · Zasláno: 15. 6. 2007, 21:10:47
problém je asi v tomto: if(eregi('^[_a-zA-Z0-9.-+]+$', $accountname)){} {
zkuisil bych zaměnit za: f(eregi('^[_a-zA-Z0-9.-+]+$', $accountname)){ teď by to už mělo šlapat :) |
||
one Profil |
#11 · Zasláno: 15. 6. 2007, 22:24:16
no jo, ja jsem blbec :) díky moc
|
||
Časová prodleva: 17 let
|
0