Strona 1 z 1

Logowanie, sesje

PostNapisane: 12 maja 2008, o 13:21
przez fredzio

Logowanie, sesje

PostNapisane: 12 maja 2008, o 19:09
przez januzi
czyli ogolnie:

session_start() ; - odpalenie sesji
$_SESSION['zmienna'] = 'wartosc' ; - przypisanie wartosci do zmiennej sesyjnej
unset( $_SESSION['zmienna'] ) ; - usuniecie wpisu z sesji

if( !empty($_SESSION['user_id']) ) {
pokaz_powitanie( $_SESSION['user_nick'] ) ;
}
else {
pokaz_logowanie() ;
}

zalogowani:
tabela: uid (uniq), timestamp
insert into tabela (uid) values ( '$id_usera' ) on duplicate key update timestamp = now()
delete from tabela where timestamp < '$czas' (kasowanie mozesz wykonywac co jakis czas, zeby nie obciazac zbytnio bazy)
select user_nick from tabela left join userzy on uid = user_id where timestamp > '$czas'

osob na stronie:
tak jak zalogowani, ale z ip (ip pobierasz z $_SERVER['REMOTE_ADDR']), ip jako unikalna kolumna

osob i zalogowanych mozna by polaczyc w jedno, czyli: uid, timestamp, ip; po dolaczeniu danych z tabeli userow bedziesz mial czesc wpisow bez user_nick:
mysql_num_rows - ogolna liczba zalogowanych ,
if( !empty($row['user_nick'])) $zalogowanych++ ;
mozesz sobie odjac jedno od drugiego, zeby uzyskac liczbe gosci

PostNapisane: 13 maja 2008, o 18:58
przez fredzio
a mam pytanie jak rozwiazac problem z tematami nieprzeczytanymi na forum?? sprawdzac na podstawie ostatniego postu i daty wylogowania? czy moze zapisywac w bazie kazdy przeczytany watek?? no i ta opcja zamapietaj mnie przy logowaniu.. cookies??


Dzieki za wczesniejsza porade :D logowanie zrobione a to kto jest obecny na stronie bede pozniej z tym walczyl... jak cos to bede pytal

PostNapisane: 13 maja 2008, o 20:10
przez januzi
przeczytaj temat: w bazie zapisujesz id tematu oraz date ostatniego wpisu (albo date wejscia) - id ( int ), user (id ) , data (timestamp); id+user uniq
przeczytaj wszystkie: z tabeli z pojedynczymi wpisami kasujesz te dotyczace usera, zapisujesz w pliku, albo tabeli date tego przeczytania

przy pokazywaniu: ladujesz do tablicy rekordy pobrane z bazy, konstruujesz zapytanie pobierajace date czytania z tabeli przeczytane (na podstawie id usera oraz id tematow) - to takze do tablicy, pokazujesz tematy i od razu sprawdzasz w drugiej tablicy jaka byla data przeczytania

jesli ma byc dla niezarejestrowanych, to w innej tabeli, albo w pliku; osoby mozesz identyfikowac poprzez cookie z wartoscia wygenerowana przez uniqid() (jak ogladajacy usunie cookie, to jego problem jak mu sie pokaze, ze nie przeczytal zadnego tematu); reszta jak dla zalogowanych

zapamietywanie zalogowania na cookie, tylko sprawdzaj czy w cokie jest odpowiednia wartosc; zapamietywanie id usera w cookie nie jest zbyt rozsadne, wystarczy sobie wyedytowac takie cookie, wpisac inny numer i dostaje sie cudze konto

PostNapisane: 4 października 2008, o 12:41
przez cezi1
nalezy pamietac ze wartosc EMPTY jako false przybiera 0 ALE jest to wartosc pusta bo pusta ale jest! powinno sie stosowac ISSET