| | |
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Autor | Správa |
---|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
ahojte,
začnem hned kodom, ten je takýto:
Kód: //prihlasovanie k databaze, overovanie kolko riadkov s danym menom a heslom existuje; vsetko OK
if ($num_rows >= 1) {
//overovanie toho ci je uzivatelske konto uz aktivovane; mam dve premenne "referencna" a "kontrolna" ktore ked sa rovnaju tak je konto aktivovane
if ($referencna==$kontrolna) { echo "Přihlášení proběhlo úspěšně! <br /> "; echo "<a href='materialy.php'>"."Pokračujte k materiálům"."</a>"; } else {
//toto else má v podstate rovnakú štruktúru ako to ktoré sposobuje problém (to problematické je nižšie); toto je v pohode - skúšal som to a nebol s tým problém
session_unset (); session_destroy (); echo "Váš účet není ověřen. Vykonejte ověření na této stránce" .
"<a href='aktivace.php'>" . "aktivace"."</a>"; }
//tu sú záverečné príkazy "velkeho" IF
mysql_close($link); die; }
else {
//toto je problematicke else; ide o to, že sa tie príkazy session vykonajú vždy; proste ked mam v tomto else session unset a destroy; tak hoci sa prihlasim pod platnym menom a heslom, tak na stranke materialy.php sa mi ukaze ze nie som prihlaseny; a myslím si že je problem práve v tomto else, lebo ked odtial vymazem tieto sesison unset a destroy, tak po prihlaseni som naozaj prihlaseny - na materialy.php mi neukazuje ze nie som; problem je samozrejme v tom, že aj ked tam dam zle meno a heslo tak sa dostanem na stranke materialy.php k obsahu pre prihlasenych; a nejako nechapem prečo sa mi tieto session prikazy vyknaju hoci nechcem :-( a v tom prvom else to ide tak ako si to predstavujem
mysql_close($link); session_unset (); session_destroy (); echo "Zadali jste nesprávný přihlašovací e-mail nebo heslo. "; echo "Zkuste znovu"; exit; }
no takže toľko; hmmm...teraz uvažujem že by som tam namiesto else dal dalšie IF s podmienkou ze number of rows < 1; to by asi šlo; avšak aj tak tu už túto tému nechám lebo nechápem prečo to nefunguje s else;
vdaka každému kto sa zapojí
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | Napísal coldak: 20.10.2010 10:30 | |
|
mozes mi prosim vysvetlit naco tam ten die mas ?
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
ono je to asi zbytočné čo? lebo sa vykoná if a else sa už nemá vykonať; a keby bolo niečo za tou konštrukciou ešte tak by to tam malo nejaké opodstatnenie asi; a keby som dal die do ifu tak by som si vlastne znefunkcnil dalsie príkazy za tym; a to die by som mal presunút do časti else pri neaktivovanom účte; no ja som tam to die dával tak nejak automaticky, som si hovoril že tým nič nepokazím, ale nejak som nad tým neuvažoval;
dík za podnet
|
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | Napísal coldak: 20.10.2010 10:46 | |
|
najprv skus napisat naco vlastne ten die sluzi ?
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
no die slúži na ukončenie skriptu; ked dojde vykonávanie skriptu k die, tak sa už nevykoná žiadny další príkaz aj ked by sa normálne vykonal; no a slúži to na ukončenie skriptu pri chybách hlavne - tj. ked napr uživatel zadá zle heslo tak aby skript skončil po napísaní odkazu nech skúsi uživatel prihlasovanie znova; keby tam die nebolo tak by sa mohlo stat ze by sa vykonala čast skriptu niekde za týmto úsekom a došlo by napriklad k zobrazeniu aj iných hlášok skriptu, prípadne obsahu pre prihlásených - záleži na tom ako to ma kto spravené
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
na co tam mas vlastne riadky so session_destroy(), ukladas nieco do session pred prihlasenim?
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 29.10.08 Prihlásený: 30.07.12 Príspevky: 933 Témy: 2 | Napísal coldak: 20.10.2010 13:34 | |
|
hm, pouzitie die a exit v tvojom pripade nema zmysel .
a ktory else sa ti vykona ? hlavny alebo ten vnoreny ?
|
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
áno, ukladám: vyzerá to takto:
Kód: session_start(); $_SESSION ['logged'] = 1;
spravil som to tak lebo mi to vyhadzovalo chybu ked som mal session_start pod hlavičkou stránky; tak som to dal na začiatok s tým že potrebujem aby sa to zrušilo ak nakoniec prihlasovanie neprebehne, alebo sa nepripojim k databaze...
inak teda coldak: vykona sa mi ten hlavny; ale on sa vlastne asi ani nevykona, žeby sa vykonal cely, lebo tie echa sa mi nikde neukazujú; ale tie sessions sa spravia asi, lebo ked to tam mám tak mi to prihlásenie nefunguje - nedostanem sa do sekcie pre užívatelov; ked to vymažem (pritom som nechal tie unset a destroy ako pri neúspechu práce s databázou, tak aj pri tom vnorenom else) tak to funguje - ale ako je vidno z toho kodu, tak ak to vymažem tak sa zase dostanem do uzivatelskej sekcie aj bez zadania existujuceho mena a hesla
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
ked zadas spravne udaje, vypise ti, ze si sa uspesne prihlasil (Přihlášení proběhlo úspěšně!)? lebo mne sa zda, ze do toho if-u sa ani nedostanes - v tom pripade je problem v kode pred overovanim $num_rows
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
áno. vypíše mi že to prebehlo úspešne a ukáže mi tam ten odkaz na materialy.php; kliknem a vidím to čo by mal vidiet užívatel;;; ked tam hodim nejakú blbost tak mi zase hodi hlasku ze je to nespravne meno alebo heslo; avšak ked vymazem to unset a destroy z problematického else, tak iba hodim do adresoveho riadku /materialy.php a vidím to čo má vidiet iba užívatel
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 Bydlisko: Bratislava |
na tvojom mieste by som $_SESSION['logged'] nastavoval, az ked overis spravnost prihlasovacich udalov a destroy pouzival iba pri odhlaseni... vyskusaj to tak, ci ti to bude fungovat
nieco taketo napr:
Kód: <?php session_start();
if(isset($_SESSION['logged'])) { header("Location: materialy.php"); exit(); }
//... $res = mysql_query("...");
if(mysql_num_rows($res) == 1) { if($referencna == $kontrolna) { $_SESSION['logged'] = 1; echo 'Přihlášení proběhlo úspěšně! <br /><a href="materialy.php">Pokračujte k materiálům</a>'; } else { echo 'Váš účet není ověřen. Vykonejte ověření na této stránce <a href="aktivace.php">aktivace</a>'; } } else { echo 'Zadali jste nesprávný přihlašovací e-mail nebo heslo. Zkuste znovu.'; } ?>
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.05.07 Prihlásený: 23.07.19 Príspevky: 420 Témy: 151 |
stenley, ďakujem Ti; funguje to; ďakujem aj za radu so session; ja som nastavil session na začiatku lebo mi to vyhadzovalo chybu ked som mal session_start až po overení údajov; no a podlahol som dojmu, že musím aj session nastavit na začiatku; ešte raz ďakujem
|
|
| Stránka: 1 z 1
| [ Príspevkov: 12 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| IE orezava obrazky ktore pretekaju hoci mam nastaveny overfl v HTML, XHTML, XML, CSS | 4 | 386 | 10.04.2010 11:37 davider137 | | Vykona pc zostava napredaj v Predám | 7 | 357 | 05.11.2014 13:29 eskal | | Skript sa vykona iba na mojej dómene. v PHP, ASP | 10 | 613 | 13.03.2010 15:01 Ďuri | | Problem pri zapnuti hoci akej hry - pc sa restartuje v nVidia grafické karty | 9 | 828 | 27.11.2007 13:12 Spirit | | If else ... v PHP, ASP | 7 | 549 | 23.02.2010 20:05 neXor | | nefunkcna podmienka else v PHP, ASP | 2 | 463 | 02.08.2010 21:32 coldak | | Lenovo, Asus, else? v Notebooky a netbooky | 4 | 557 | 11.02.2010 19:03 tralfamadorčan | | problem s else if v PHP, ASP | 6 | 388 | 19.04.2008 13:40 Broko71 | | Dark Souls - Prepare To Die Edition PC v Kúpim | 0 | 227 | 20.06.2017 10:28 Symfonius | | if a else v C v Assembler, C, C++, Pascal, Java | 8 | 636 | 08.02.2009 16:51 Watik | | Else a If vo foreach() v PHP, ASP | 3 | 435 | 22.04.2011 19:12 Blackshadow | | P: Direct die vodny blok na s.1700 v Predám | 0 | 121 | 07.05.2023 11:05 ericc64 | | Kratky zapis pre IF/ELSE podmienku - NEFUNGUJE v PHP, ASP | 10 | 694 | 04.04.2008 11:25 mondzo | | P: Intel Core i9-14900K ( SP99 ) + Supercool Direct Die GEN13 v Predám | 0 | 185 | 12.11.2023 10:58 ericc64 | | kúpim Dark Souls Prepare to Die Edition do 20€ (Steam) v Kúpim | 0 | 365 | 19.02.2019 10:56 Deadroth | | I/P: HITMAN™: THE COMPLETE FIRST SEASON / 7 Days to Die v Predám | 12 | 545 | 03.11.2018 8:02 kllr007 |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|