Nasze strony wykorzystują pliki cookies. Używamy cookies i podobnych m.in. w celach reklamowych i statystycznych oraz w celu dostosowania serwisów do potrzeb użytkowników. Mogą też stosować je nasi reklamodawcy, firmy badawcze oraz dostawcy aplikacji. W przeglądarce można zmienić ustawienia dotyczące cookies. Więcej informacji. Jeśli nie wyrażasz zgody, opuść tę stronę.

Logowanie, sesje

Forum dyskusyjne poświęcone zagadnieniom związanym z tworzeniem serwisów z wykorzystaniem zaawansowanych technologii takich jak PHP, Perl, mySQL, ASP, CGI, XML, itp.

Moderator: Grupa pościgowa ;-)

Logowanie, sesje

Postprzez fredzio » 12 maja 2008, o 13:21

fredzio
Użytkownik forum
Użytkownik forum
 
Posty: 91
Dołączył(a): 10 maja 2004, o 21:23

Logowanie, sesje

Postprzez januzi » 12 maja 2008, o 19:09

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
januzi
Mega GURU
Mega GURU
 
Posty: 1431
Dołączył(a): 18 października 2002, o 13:53

Postprzez fredzio » 13 maja 2008, o 18:58

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
fredzio
Użytkownik forum
Użytkownik forum
 
Posty: 91
Dołączył(a): 10 maja 2004, o 21:23

Postprzez januzi » 13 maja 2008, o 20:10

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
januzi
Mega GURU
Mega GURU
 
Posty: 1431
Dołączył(a): 18 października 2002, o 13:53

Postprzez cezi1 » 4 października 2008, o 12:41

nalezy pamietac ze wartosc EMPTY jako false przybiera 0 ALE jest to wartosc pusta bo pusta ale jest! powinno sie stosowac ISSET
cezi1
Zanim zapytam poszukam odpowiedzi
Zanim zapytam poszukam odpowiedzi
 
Posty: 6
Dołączył(a): 4 października 2008, o 12:35


Powrót do PHP, Perl, SQL, CGI, XML...

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników

cron