![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 144 Pomógł: 12 Dołączył: 16.03.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam, na początku chce zaznaczyć, że to nie jest problem poruszany n-ty raz, przeszukałem koło 100 tematów na tym forum dotyczących logowania i nie znalazłem odpowiedzi, google milczało, chyba że nie wiem jak zadać pytania dla wujka google, jeśli tak to przepraszam. (IMG:http://forum.php.pl/style_emoticons/default/wstydnis.gif)
Posiadam stronę na której jest galeria ze zdjęciami i aby można było je obejrzeć użytkownik musi być zalogowany i mój problem polega na tym iż 1 osoba się rejestruje i podaje reszcie swój login i hasło i jednocześnie oglądają zdjęcia. Z praktyki wiem że w jednym czasie na 1 loginie przegląda zdjęcia nawet 4 użytkowników jednocześnie. Chcę to wyeliminować i zmusić każdego z tych użytkowników to założenia konta. Na podstronie z galerią sprawdzam, czy osoba jest zalogowana za pomocą sesji:
próbowałem używać session_regenerate_id()" title="Zobacz w manualu PHP" target="_manual , także dodałem regułę do pliku htaccess: Kod php_value session.use_only_cookies 1 php_value session.use_trans_sid 0 Oczywiście pozwoliło to wyeliminować spryciarzy, którzy przesyłali link już po zalogowaniu, ale dalej mojego problemu to nie rozwiązało. Myślałem o tym,żeby stworzyć tabelę z id_usera i id_session i sprawdzać co każde wylistowanie zdjęć czy id sesji zgadza się z orginałem. Jednak czy to pomoże czy tylko obciąży serwer ? Czy może lepiej wysyłać jakieś ciasteczko, czy też sprawdzać odstęp czasu pomiędzy logowaniami czy w jakiś sposób sprawdzać czy dany użytkownik jest zalogowany ? (jeśli tak to w jaki ?) Prosiłbym tych, którzy spotkali się z tym problemem, żeby opisali jak sobie z tym poradzili, może ktoś wklei jakiś kawałek kodu Z góry dzięki |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 1 Dołączył: 30.06.2009 Ostrzeżenie: (10%) ![]() ![]() |
Do tabeli z userami dodajesz pole "sid" gdzie zamieszczasz identyfikator sesji i pole "time" gdzie wstawisz czas w timestamp. Przy logowaniu każdy dostaje sida, którego dodajemy do bazy danych. Jeśli aktualny timestamp będziewiększy od "time"+1800 (czyli jesli przez pol godziny nioe będzie zadnej akcji" to zmieniasz "sid" na 0. Przy logowaniu sprawdzamy czy "sid"==0. Dodajesz też opcję wyloguj, która też ustawia SID na 0.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 14.10.2025 - 08:36 |