Sessions - ověření

3 příspěvky

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Vim že tenhle kod vypadá divně ale jinak jsem to nevymyslel a ono to stejně nefunguje. Nevíte jak na to? dík MySQL_Query("Select * from redakce where login='$login' and heslo='$heslo'"); if $_SESSION['login'] != $login { header ("Location: login.php"); } if $_SESSION['heslo'] != $heslo { header ("Location: login.php"); }
  2. ja by som to spravil racej nejako takto: <? if ($login && $heslo) { $sql=mysql_query("SELECT * FROM `redakce`") or die(mysql_error()); while ($row=mysql_fetch_array($sql)) { if ($row['login']==$login && $row['heslo']==$heslo) { $_SESSION['login'] != $login; $_SESSION['heslo'] != $heslo; header("location:login.php"); } } } ?> * mozno ti to nefunguje preto, lebo funkcia header(location: x) nefunguje ak to mas includovane. Ak to chces prasmerovat a mas include, tak to skus racej pomocou maeta tagov alebo javascriptu.
  3. Zaprve, na zacatku kazdyho skriptu, ktery pouziva sessions, musi byt <?php session_start(); ?> Ja sessions pouzivam u overovani prihlaseni jednu session promennou, ktera se vytvori pri prvnim uspesnem overeni podle databaze a zrusi se pri odhlaseni (pripadne expiraci session). Opakovane overovani podle databaze odpada diky obycejne kontrole existence te session promenne: priklad MySQL: users (id=int,name=text,password=text,last_login=int) heslo je ulozeno jako md5 hash priklad login.php <?php if (isset($POST["login"])) { ?> <form> <!-- prihlasovaci formular. pole: name(text), password(password), target:login.php --> ... </form> <? } session_start(); $result = mysql_query("SELECT id FROM users WHERE name='$_POST[name]' AND password=MD5('$_POST[heslo]') LIMIT 1"); if (mysql_num_rows($result)) { // prihlaseni uspesne session_register("user_id"); // registrace prihlaseni $_SESSION["logged_user"] = mysql_result($result,0,0); $next = "index.php?log=ok"; mysql_query("UPDATE users SET last_login=UNIX_TIMESTAMP() WHERE id='$_SESSION[logged_user]' LIMIT 1"); } else $next = "index.php?log=error"; header("Location: $next"); ?> priklad index.php , vsechny_stranky_vyzadujici_overeni.php <?php session_start(); if (!session_is_registered("logged_user")) {header("Location: login.php?login"); die();} .... ?> priklad logout.php <?php session_start(); session_unregister('logged_user'); ?>

← Zpět na všechna témata