Autor | Zpráva | ||
---|---|---|---|
Johaness Profil * |
#1 · Zasláno: 28. 3. 2012, 20:07:02
Dobrý večer,
mám problém s přihlášením uživatele - Vypisuje se mi chybová hláška Deprecated: Function session_is_registered() is deprecated in . Slyšel jsem, že v nové verzi php je tato fce odstraněna. Čím a jak ji nahradit? Kód pro kontrolu přihlášení je následující: <?php include "config.php"; $uzivatel=$_POST['uzivatel']; $heslo=($_POST['heslo']); $heslo=MD5($heslo); $uzivatel = stripslashes($uzivatel); $heslo = stripslashes($heslo); $uzivatel = mysql_real_escape_string($uzivatel); $heslo = mysql_real_escape_string($heslo); $sql="SELECT * FROM uzivatele WHERE uzivatel='$uzivatel' and heslo='$heslo'"; $result=mysql_query($sql); $count=mysql_num_rows($result); if($count==1){ session_register("uzivatel"); session_register("heslo"); header("location: ../admin/index.php"); } else { echo "Špatné uživatelské jméno nebo heslo! Zkuste to prosím znova!"; } ?> session_start(); if (!session_is_registered(uzivatel)) {header("location:./login.php"); } include "../config.php"; echo "přihlašeni úspěšné, admin zona"; ?> Popřípadně, jak tento kód upravit, aby byl bezpečnější? Děkuji za tipy a rady. |
||
panther Profil |
#2 · Zasláno: 28. 3. 2012, 20:10:04
|
||
Johaness Profil * |
#3 · Zasláno: 28. 3. 2012, 20:34:33
panther:
neumím moc dobře anlgicky, ale řekl bych, je třeba 'session_is_registered' nahradit $_SESSION('uzivatel'); a tak samo i v souboru pro kontrolu přihlášení? |
||
panther Profil |
#4 · Zasláno: 28. 3. 2012, 20:47:06
Johaness:
pochopil jsi to správně. Deprecated je i session_register , sessiony se dají plnit přímo, tedy $_SESSION['user'] = 'Pavel' , kontrola existence pak probíhá přes isset($_SESSION['user']) .
|
||
Johaness Profil * |
#5 · Zasláno: 28. 3. 2012, 21:20:44
panther:
Ano našel jsem řešení na phpfreaks.com ... každopádně, jak můj kód převést do této podoby ( v případě že je správná?) Děkuji za trpělivost. function get_session($param_name) { $param_value = ""; iif(!isset($_POST[$param_name]) && !isset($_GET[$param_name]) && isset($_SESSION[$param_name])) $param_value = $_SESSION[$param_name]; return $param_value; } |
||
Johaness Profil * |
#6 · Zasláno: 28. 3. 2012, 22:56:17
Tak jsem své řešení upravil a rád bych se zeptal, jetli je to správně:
Soubor pro kontrolu ( ř. 19 - 24 viz kod #1 ) if($count==1){ $_SESSION['uzivatel'] = 'uzivatel'; $_SESSION['heslo'] = 'heslo'; header("location: ../admin/index.php"); } session_start(); if(!isset($_POST['uzivatel']) && !isset($_GET['uzivatel']) && !isset($_SESSION['uzivatel'])) {header("location:../login.php"); } |
||
Časová prodleva: 12 let
|
0