Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [php] Wylogowywanie - problem
kulpek
post
Post #1





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.12.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Witam

Probuje zrobic skrypt rejestracji uzytkownika a pozniej logowania/wylogowywania. Rejestracja i logowanie dzialaja jak nalezy, ale mam problem z wylogowaniem.

czesc skryptu odpowiadajaca za logowanie wyglada tak:

  1. <?php
  2. // rozpoczecie sesji, zarejestrowanie wartosci i przekierowanie
  3. $_SESSION['username'] = $row[1];
  4. $_SESSION['user_id'] = $row[0];
  5. if(isset($_SESSION['user_id'])) {
  6. $query = "UPDATE users SET last_login=NOW() WHERE user_id='$row[0]'";
  7. $result = @mysql_query($query);
  8. }
  9.  
  10. ob_end_clean(); // usuniecie bufora
  11.  
  12. header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php");
  13. exit();
  14. ?>



i teraz na stronie glownej sprawdzam czy istnieje zmienna $_SESSION['username'].. jesli nie to dolaczam formularz, a jesli istnieje to odnosnik do wylogowania... znajduje sei on w osobnym pliku, ktory wyglada tak:

  1. <?php
  2. if (!isset($_SESSION['username'])) { // jesli nie istnieje zmienna username uzytkownik zostanie przekierowany
  3. header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php");
  4. ob_end_clean(); // usuwanie bufora.
  5. exit(); // zakonczenie skrytpu
  6. } else { // wylogowanie uzytkownika.
  7. $_SESSION = array();
  8. if (isset($_COOKIE[session_name()])) {
  9.  setcookie(session_name(), '', time()-42000, '/', '', 0);
  10. }
  11. }
  12. ?>




i teoretycznie po kliknieciu w odnosnij wyloguj powinno mnie przenosic na strone glowna i pokazywac formularz, ale tak sie nie dzieje tylko dalej widze link do wyloguj.php Sad

Dlaczego tak sie dzieje? moze ktos mi pomoc? pozdro
Go to the top of the page
+Quote Post
-Gość-
post
Post #2





Goście







Miałem podobny problem, z wylogowaniem się, tylko sprawdź sobie czy sesja, podczas wylogowania się kasuje, i czy cookies się kasuje
Go to the top of the page
+Quote Post
kulpek
post
Post #3





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.12.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Wlasnie w tym problem, ze ani jedno ani drugie sie nie kasuje sad.gif
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


moze przed session_destroy daj:
  1. <?php
  2. unset($_SESSION['username']);
  3. unset($_SESSION['user_id']);
  4. ?>

Ogolnie to tu
  1. <?php
  2. else { // wylogowanie uzytkownika.
  3. $_SESSION = array();
  4. if (isset($_COOKIE[session_name()])) {
  5.  setcookie(session_name(), '', time()-42000, '/', '', 0);
  6. }
  7. }
  8. ?>

Nie widze zadnego przekierowywania i upewnij sie ze nazwa cookie i czas jest taki sam jak przy wysylaniu

EDIT: Literowka w kodzie

Ten post edytował marcio 25.12.2007, 19:34:33


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
kulpek
post
Post #5





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.12.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


moj blad... wkleilem stary kod.. teraz mam cos takiego:

  1. <?php #wylogowanie
  2. if (!isset($_SESSION['username'])) { // jesli nie istnieje zmienna username uzytkownik zostanie przekierowany
  3. header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php");
  4. ob_end_clean(); // usuwanie bufora.
  5. exit(); // zakonczenie skrytpu
  6. } else { // wylogowanie uzytkownika.
  7. $_SESSION = array();
  8.  setcookie(session_name(), '', time()-42000, '/', '', 0);
  9. unset($_SESSION['username']);
  10. unset($_SESSION['user_id']);
  11. header ("Location: http://" . $_SERVER['HTTP_HOST'] . "/index.php");
  12. exit();
  13. }
  14. ?>


ale skrypt dalej nie dziala
Go to the top of the page
+Quote Post
czachor
post
Post #6





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Spróbuj to:
  1. <?php
  2. // Usuń wszystkie zmienne sesyjne
  3. $_SESSION = array();
  4.  
  5. // Jeśli pożądane jest zabicie sesji, usuń także ciasteczko sesyjne.
  6. // Uwaga: to usunie sesję, nie tylko dane sesji
  7. if (isset($_COOKIE[session_name()])) {
  8.  setcookie(session_name(), '', time()-42000, '/');
  9. }
  10.  
  11. // Na koniec zniszcz sesję
  12. ?>


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
kulpek
post
Post #7





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 9.12.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Dziala, wielkie dzieki smile.gif wiem, ze z manuala ale wczesniej niepotrzebnie kombinowalem z tym smile.gif proste rozwiaania sa najlepsze smile.gif
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 02:09