Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Logowanie i cookiesy w php
Usagi
post
Post #1





Grupa: Zarejestrowani
Postów: 9
Pomógł: 0
Dołączył: 9.07.2003

Ostrzeżenie: (0%)
-----


Mam taki skrypt

[php:1:67cdb142bb]<?php
if(!(empty($_SERVER['HTTP_REFERER'])))
{
$data = guest_login($_SERVER['HTTP_REFERER']);
if($data['user_kind'] == 'guest')
{
session_register('USER_ID','LOGIN','USER_KIND');
$USER_ID = $data['user_id'];
$LOGIN = $data['user_login'];
$USER_KIND = $data['user_kind'];
}
}



if(empty($LOGIN))
{

if(!(empty($COOKIE_LOGIN)))
{
session_register('USER_ID','LOGIN','USER_KIND');
$USER_ID = $COOKIE_USER_ID;
$LOGIN = $COOKIE_LOGIN;
$USER_KIND = $COOKIE_USER_KIND;
setcookie("COOKIE_LOGIN", $USER_LOGIN, time()+7776000);
setcookie("COOKIE_USER_KIND", $USER_KIND, time()+7776000);
setcookie("COOKIE_USER_ID", $USER_ID, time()+7776000);

}
else
{
if($action=='Zaloguj')
{
$data=user_login($_POST['login'], $_POST['password']);

if($data != '0')
{
if($_POST['still_login']=='yes')
{
setcookie("COOKIE_LOGIN", $data['user_login'], time()+7776000);
setcookie("COOKIE_USER_KIND", $data['user_kind'], time()+7776000);
setcookie("COOKIE_USER_ID", $data['user_id'], time()+7776000);
}
session_register('USER_ID','LOGIN','USER_KIND');
$USER_ID = $data['user_id'];
$LOGIN = $data['user_login'];
$USER_KIND = $data['user_kind'];
}
}
}
}

if(!(empty($LOGIN)))
{
if($action=='Wyloguj')
{
setcookie("COOKIE_LOGIN","", time()-999);
setcookie("COOKIE_USER_KIND","", time()-999);
setcookie("COOKIE_USER_ID","", time()-999);
session_unregister("USER");
session_unregister("USER_ID");
session_unregister("USER_KIND");
session_destroy();
}
}
?>[/php:1:67cdb142bb]

Teraz to dziala tak: za pierwszym razem jest ok, za drugim razem tez, za trzecim wlaczeniem przegladarki znow nie widzi cookiesow.


--------------------
Warsztat: Apache 1.3.27 | PHP 4.3.1 | MySQL 3.23.53 | HandyHTML Studio 2
Na warsztacie: Wędrusie [b]llll 20%
Go to the top of the page
+Quote Post
spenalzo
post
Post #2





Grupa: Zarejestrowani
Postów: 2 064
Pomógł: 1
Dołączył: 22.01.2003
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Moze za duży czas ustawiasz?questionmark.gif Spróbuj zamiast
[php:1:df83359d1e]<?php
time()+100000000000
?>[/php:1:df83359d1e]
dać
[php:1:df83359d1e]<?php
time()+7776000
?>[/php:1:df83359d1e]
to ustawi (a przynajmniej powinno) ciastko na 90 dni.
Ja bym to na pierwszy rzut oka obstawiał - być może data jaka powstaje jest za duża i przechodzi automatycznie na 0 - czyli 01.01.1970 - a że takie ciastko byłoby baaardzo stare to jest kasowane.

Taka rada jeszcze: zamiast sprawdzać if(isset($zmienna)) sprawdzaj !if(empty($zmienna)) - bo pierwszy warunek bedzie prawdą jeżeli zmiennej nie będzie - ale gdy będzie zdefiniowana, ale pusta, to warunek zwróci false, a empty($zmienna) nadal zwróci true - chyba że to zamierzone tongue.gif


--------------------

Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 15:21