[ Príspevkov: 12 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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í


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2

mozes mi prosim vysvetlit naco tam ten die mas ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2

najprv skus napisat naco vlastne ten die sluzi ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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é


Offline

Správca fóra
Správca fóra
Vykoná sa mi aj else časť hoci sa už vykonala if - die mám

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

na co tam mas vlastne riadky so session_destroy(), ukladas nieco do session pred prihlasenim?


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 29.10.08
Prihlásený: 30.07.12
Príspevky: 933
Témy: 2 | 2

hm, pouzitie die a exit v tvojom pripade nema zmysel .
a ktory else sa ti vykona ? hlavny alebo ten vnoreny ?


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

á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


Offline

Správca fóra
Správca fóra
Vykoná sa mi aj else časť hoci sa už vykonala if - die mám

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

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


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

á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


Offline

Správca fóra
Správca fóra
Vykoná sa mi aj else časť hoci sa už vykonala if - die mám

Registrovaný: 27.07.07
Príspevky: 3971
Témy: 51 | 51
Bydlisko: Bratislava
Vek: 32

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.';
}
?>


_________________
Desktop: CPU: AMD Athlon64 3000+ | MB: Biostar K8T890-A9 | VGA: NVIDIA GeForce 6200 LE 256MB | RAM: 2x 1GB A-DATA DDR 400 MHz Dual Kit | HDD: WD Caviar Blue 320GB | DVD: LG GSA-H10N | Keyboard: Chicony KU-0420 Silver/Black | Mouse: Logitech RX1000 | Zdroj: Corsair CX400 400W | CASE: DELUX DLC-MD370 Black | LCD: 20" Samsung 206BW | Repro: Teac XL-20
Notebook: ACER Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB / Intel HD Graphics | RAM: 4GB DDR3 1066 MHz | HDD: 640GB
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 01.05.07
Prihlásený: 14.04.17
Príspevky: 413
Témy: 150 | 150

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


 [ Príspevkov: 12 ] 


Vykoná sa mi aj else časť hoci sa už vykonala if - die mám



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

IE orezava obrazky ktore pretekaju hoci mam nastaveny overfl

v HTML, XHTML, XML, CSS

4

212

10.04.2010 11:37

davider137

V tomto fóre nie sú ďalšie neprečítané témy.

Dark Souls - Prepare To Die Edition PC

v Kúpim

0

38

20.06.2017 10:28

Symfonius

V tomto fóre nie sú ďalšie neprečítané témy.

Vykona pc zostava napredaj

v Predám

7

259

05.11.2014 13:29

eskal

V tomto fóre nie sú ďalšie neprečítané témy.

Skript sa vykona iba na mojej dómene.

v PHP, ASP

10

402

13.03.2010 15:01

Ďuri

V tomto fóre nie sú ďalšie neprečítané témy.

Problem pri zapnuti hoci akej hry - pc sa restartuje

v nVidia grafické karty

9

527

27.11.2007 13:12

Spirit

V tomto fóre nie sú ďalšie neprečítané témy.

If else ...

v PHP, ASP

7

384

23.02.2010 20:05

neXor

V tomto fóre nie sú ďalšie neprečítané témy.

Lenovo, Asus, else?

v Notebooky a netbooky

4

285

11.02.2010 19:03

tralfamadorčan

V tomto fóre nie sú ďalšie neprečítané témy.

nefunkcna podmienka else

v PHP, ASP

2

250

02.08.2010 21:32

coldak

V tomto fóre nie sú ďalšie neprečítané témy.

problem s else if

v PHP, ASP

6

238

19.04.2008 13:40

Broko71

V tomto fóre nie sú ďalšie neprečítané témy.

if a else v C

v Assembler, C, C++, Pascal, Java

8

422

08.02.2009 16:51

Watik

V tomto fóre nie sú ďalšie neprečítané témy.

Else a If vo foreach()

v PHP, ASP

3

257

22.04.2011 19:12

Blackshadow

V tomto fóre nie sú ďalšie neprečítané témy.

Kratky zapis pre IF/ELSE podmienku - NEFUNGUJE

v PHP, ASP

10

393

04.04.2008 11:25

mondzo

V tomto fóre nie sú ďalšie neprečítané témy.

MVC: časť model

v PHP, ASP

2

417

26.01.2011 16:55

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

cast kodu OSS

v HTML, XHTML, XML, CSS

6

336

01.04.2008 20:31

Flety

V tomto fóre nie sú ďalšie neprečítané témy.

Chýba časť diakritiky

v Ostatné

15

892

14.08.2008 17:01

neutronmind

V tomto fóre nie sú ďalšie neprečítané témy.

Upgrade - časť 2.

v PC zostavy

18

453

20.11.2011 23:20

mino_85



© 2005 - 2017 PCforum, edited by JanoF