Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Metoda identyfikacji przy wylogowywaniu
Forum PHP.pl > Forum > Bazy danych > MySQL
escaflowne
Witam!
Próbuję stworzyć w php chat (a na Javie się nie znam). Chat ten korzystać ma z bazy danych mySQL. W tabeli znajdują się pola:
ID, user, czas_wejscia, czas_wyjscia i obecny.
czas_wejscia i czas_wyjscia, są to pola typu TIME, login to VARCHAR, ID to INT, a obecny to ENUM(tak,nie).
Kiedy ktoś się zaloguje, jego login i czas wejscia zostają wpisane do tabeli, pole czas_wyjscia dostaje wartość 00:00:00, a obecny wartość 'tak'.
Chciałbym, żeby po naciśnieciu na przycisk Wyloguj, jego login i czas_wejscia pozostawaly bez zmian, czas_wyjscia dostawal czas serwera a obecny zmienial sie na 'nie'. Nie wiem jednak, jaki sposob identyfikacji wprowadzic, zeby serwer wiedzial, kto chce sie wylogowac.
Mógłbym wprawdzie wprowadzić jeszcze pole, do którego trafiał by adres IP, osoby, która się loguje, ale co zrobić, jeżeli np. 2 osoby logują się na chata, a siedzą sieci lokalnej (identyczne IP)? Może plik cookie?
Nie wiem... sad.gif sad.gif sad.gif sad.gif sad.gif :cry:
kossa
Gdy user sie loguje to po kliku zaloguj sie ustawia sie w bazie jego czas wejscia i czy jest, to zrob to samo jak kliknie na wyloguj - ten sam skrypt tylko zmodyfikowany aby ustawial pole czas_wyjscia i zmienial z tak na nie i po problemie, przeciez to proste smile.gif

pozdawiam
Kossa
escaflowne
:x No dobrze, ale po prostu muszę wiedzieć, jakim parametrem ma się kierować skrypt php, aby wiedzieć, że wylogować tą, a nie inną osobę. To co sewer zrobi po zidentyfikowaniu osoby, która kliknęła na Wyloguj wiem doskonale.
itsme
moim skromnym zdaniem powalcz sesjami lub dodaj zmienna ID do adresu URL http://adres.pl?twoje_zmienne&ID=ID_z_bazy_danych
kossa
w php jest funkcja generujaca unikalny identyfikator: uniqid()

np.:

echo uniqid("");

da wynik 43242h4kh24h324j32

i masz po problemie

jak user sie loguje to nadawaj mu wlasnie taki identyfikator, niech bedzie w sesji i niech zostaje wstawiany do Twojej tabeli w bazie (dodaj nowe pole) i potem jak wyloguj to niech robi operacje na bazie tak gdzie identyfikator = $identyfikator

i problem masz z glowy smile.gif

Pozdrawiam
Kossa
escaflowne
Przyznaję, że faktycznie myślałem, czy nie wykorzystać sesji, ale o uniqid() nie wiedziałem :oops: (trzeba będzie spojrzeć do manuala... znowu). Spróbuję... Jeśli wszystko będzie gut dam znać. Niemniej już teraz dziękuję wam za udzielone mi rady 8)
kossa
pisze to na szybko z "glowy"

plik logowanie.php

Kod
<?php



$user_id = uniqid();



session_register("user_id");



//wstaw do bazy date, uder_id itd.



?>


plik wyloguj.php

Kod
<?php



global $user_id;



//modyfikuj w bazie pola where user_id = $user_id;



?>


powinno byc ok - rozwin to sobie smile.gif

Kossa
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.