![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 8.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Napisałam własną funkcję obsługi sesji - tak by dane sesji były zapisywane w bazie danych. Dane zapisują się, ale mam problem z kasowaniem danych sesji w bazie.
Całość funkcji jest zapisana w klasie DatabaseSessionStorage. W klasie DatabaseSessionStorage jest funkcja distroy(), która odpowiada za kasowanie danych sesji z bazy:
W pliku session_test.php mam skrypt, który ma wykorzystywać tą funkcję do kasowania danych sesji z bazy:
Problem polega na tym, ze dane sesji zapisują się w bazie, ale nie kasują się. Po naciśnięciu przycisku "wyloguj się" skrypt przechwytuje zmienną $_POST, zapytanie do bazy "DELETE..." jest prawidłowe(sprawdziłam print-em ), ale dane dalej są w bazie. Zastanawiam się czy nie potrzeba jakiegoś potwierdzenia, że chcę skasować te dane z tabeli. Czy ktoś wie, jak rozwiązać ten problem? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
coś musi być nie tak z tym zapytaniem skoro nie usuwa...
Sprawdź wykorzystując funkcje mysql_affected_rows" title="Zobacz w manualu PHP" target="_manual a tak poza tym.... co zrobisz jak ktoś się nie wyloguje a tylko zamknie przeglądarkę? |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 8.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
coś musi być nie tak z tym zapytaniem skoro nie usuwa... Sprawdź wykorzystując funkcje mysql_affected_rows" title="Zobacz w manualu PHP" target="_manual a tak poza tym.... co zrobisz jak ktoś się nie wyloguje a tylko zamknie przeglądarkę? Hmm, funkcja mysql_affected_rows daje wynik 0, co jest raczej oczywiste, jeśli nie kasuje danych z tabeli. Co do zamkniecia przegladarki to mam zdefiniowaną w klasie funkcję, która usuwa sesje z bazy po upływie określonego czasu. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
Wyświetl sobie przed zapytaniem wartość $id... Może występuje problem z jej przekazaniem?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 8.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
Wyświetl sobie przed zapytaniem wartość $id... Może występuje problem z jej przekazaniem? Wyświetlam i pokazuje prawidłowy id sesji np. 4e1b5f61b654871ffa3fed72a83ba783, który został zapisany w bazie. Jak wyświetlam całe zapytanie do bazy dostaje: DELETE FROM ap_sessiondata WHERE session_id = '4e1b5f61b654871ffa3fed72a83ba783'; Wygląda prawidłowo.... Wklepałam nawet to zapytanie prosto do bazy danych przez phpmyadmin i wykasował. Ten post edytował OlgaG 26.01.2008, 22:54:16 |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
wklej zapytanie do phpmyadmina... Sprawdź tam...
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 44 Pomógł: 0 Dołączył: 8.04.2007 Ostrzeżenie: (0%) ![]() ![]() |
wklej zapytanie do phpmyadmina... Sprawdź tam... Już to zrobiłam (mój poprzedni post:) i z poziomu phpmyadmin zapytanie jest prawidłowe i kasuje wybrany rekord. Zrobiłam jeszcze jeden eksperyment: w kodzie spróbowałam nie korzystać z metody klasy tylko bezpośrednio wpisałam zapytanie, czyli zamiast:
dałam coś takiego:
i też nie kasuje. (IMG:http://forum.php.pl/style_emoticons/default/blinksmiley.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 749 Pomógł: 37 Dołączył: 3.10.2006 Ostrzeżenie: (0%) ![]() ![]() |
do mysql_query daj na końcu mysql_error()... Może jednak jest coś nie tak z zapytaniem...
a może metoda query w clasie conn jest niepoprawna? Ten post edytował 1010 26.01.2008, 23:11:37 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:36 |