| Autor | Zpráva | ||
|---|---|---|---|
| vladap Profil |
#1 · Zasláno: 8. 7. 2012, 17:37:54
Dobry den (ahoj),
po prihlaseni uzivatele ukladam do promenne hash, ktery slouzi pro authentikaci na MySQL pri cteni a zapise. Hash nacitam pres:
public function login ($T_name, $T_password, $T_url, $T_page)
{
$conn = $GLOBALS['conn'];
$T_user_objid = $T_page->user_objid;
$T_browser_objid = $T_page->browser_objid;
$procedure = "Main_login_users_standard_into(
'".$T_name."',
'".$T_password."',
'".$T_url."',
'".$T_user_objid."',
'".$T_browser_objid."',
@a)";
$Q_user_long_access_stamp = return_from_procedure($procedure, '@a'); //nacteni promenne z MySQL funkce, funguje bez problemu.
$T_page->user_objid = $Q_user_long_access_stamp;
$COOKIE['users_login'][$T_url] = array(
'Long_access_stamp' => $Q_user_long_access_stamp,
'UnixTime_Stamp' => $result->TimeStamp_def,
'Comp_spec' => $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'],
);
setcookie('users_login',serialize($COOKIE['users_login'])); //cookies se fyzicky vytvori a je k precteni
}
return $Q_user_long_access_stamp;
}
Cookies se vytvori a bez problemu zapisi. Promenna $T_page->user_objid, ktera nese hash na strane PHP se take naplni. Priklad hashe: 9932fba58a3ee84bd89946a6bb526ade
Pri refresh stranky (noveho nacteni) se vola funkce Autologin, ktera ma z cookies natahnout opet hash, ale zde narazim. Funkce se bez problemu zavola, ale nedostane se pres podminku:
if (isset($COOKIE['users_login'][$Q_Page_HTMLaddress])&& $COOKIE['users_login'][$Q_Page_HTMLaddress]['Comp_spec'] == $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR'])
Hash se nenacte. Vypis funkce autologin:
public function autologin ($T_page)
{
$conn = $GLOBALS['conn'];
if (isset($_COOKIE['users_login'])) {
$Q_Page_HTMLaddress = $_SESSION['url_current'];
$COOKIE['users_login'] = unserialize($_COOKIE['users_login']);
if (isset($COOKIE['users_login'][$Q_Page_HTMLaddress])
&& $COOKIE['users_login'][$Q_Page_HTMLaddress]['Comp_spec'] == $_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']) {
$Q_user_long_access_stamp = $COOKIE['users_login'][$Q_Page_HTMLaddress]['Long_access_stamp'];
$Q_UnixTime_Stamp = $COOKIE['users_login'][$Q_Page_HTMLaddress]['UnixTime_Stamp'];
$T_page->user_objid = $Q_user_long_access_stamp;
echo 'zapis: '.$T_page->user_objid; // NEFUNGUJE :-(
}
}
return false;
}
Nenapada vas prosim, cim by to mohlo byt. Cookies zapisuje korektne, ale neprecte jej. Mozna je chyba v php.ini, muzu poslat extrakt. Uz jsem se s tim docela natrapil a fakt nevim.
Dekuji, Vlada |
||
| Alphard Profil |
#2 · Zasláno: 9. 7. 2012, 00:52:14
Zkoušel jste si vypsat
$COOKIE['users_login'] na 43. řádku? Je obsah načten?
|
||
| vladap Profil |
#3 · Zasláno: 9. 7. 2012, 21:09:30
Ano zkousel. A v tom je prave problem. Pres (isset($_COOKIE['users_login'])) se dostane, ale pak to vypada, ze to nedokaze precist.
|
||
| Alphard Profil |
#4 · Zasláno: 9. 7. 2012, 23:10:51
Já myslel vypsat jako např. var_dump(), prostě podívat se, co obsahuje.
|
||
| vladap Profil |
#5 · Zasláno: 11. 7. 2012, 23:06:16
Alphard:
uz mi to funguje. Blblo mi serialize/unserialize. Zrusil jsem array a davam to do cookies polozku po polozce. Dekuji za pomoc. Vlada |
||
|
Časová prodleva: 13 let
|
|||
0