Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] blad z wylogowaniem...
Forum PHP.pl > Forum > Przedszkole
ukaszq
Stworzylem taki skrypt, w czasie ktorego chce aby przy kliknieciu
klient zostal wylogowany. No ale to nie dziala sad.gif Co moze byc nie tak... nie wylogowuje... z sesji...


  1. <?
  2.  
  3. if (isset($_POST['wyloguj'])){
  4.  unset($_SESSION['user']);
  5.  if (!empty($_SESSION['user'])) {
  6.  echo 'Niezdefiniowany blad - uruchom ponownie przegladarke!';
  7.  } else {
  8.  header('Location: index.php');
  9.  }
  10.  
  11. }
  12.  
  13. ?>

  1. <form method="post">
  2. <input name="wyloguj" type="button" value="logout" />
  3. </form>
  4. </body>
  5. </html>
Shili
Formularz swoje dane przekazuje do jakiejś strony za pomocą atrybutu action. Ty czegoś takiego nie masz, dodaj sobie w action adres tej strony, w której zawierasz skrypt php z wywołaniem wylogowania. Poza tym wydaje mi się, że lepszym typem inputa byłby submit.
sniezny_wilk
Ale namieszałeś.. a nie możesz zrobić if i zwykłego linka ?

link:
  1. <a href="index.php?action=logout">wyloguj</a>


php:
  1. <?php
  2. if($_GET['action'] == 'logout'){
  3. header('Location: index.php');
  4. }
  5. ?>
ukaszq
Zrobilem tak i wyskakuje błąd:

Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in /home/admin/www/sprzedaz/log/wylogowanie.php on line 4
Shili
Wystarczy przeczytać ostrzeżenie - próbujesz zniszczyć niezainicjowaną sesję.
sniezny_wilk
Jeśli korzystasz z mojego przykładu to oczywiście tam w pierwszej linijce powinno być session_start();
Sadu2
Ja mam taki kod:

  1. <?php
  2. echo '<p class="nap"><a href="logout.php">Wyloguj</a></p>';
  3. ?>


Plik logout.php:

  1. <?php
  2. header('Location: index.php');
  3. ?>


I niestety ciągle jestem zalogowany sad.gif
Shili
Zawsze możesz jeszcze spróbować przed session_destroy unset'ować zmienną/zmienne sesyjne którymi sprawdzasz zalogowanie. Chociaż to akurat powinno spokojnie zniszczyć Ci wszystko.


Sprawdź w pliku index, czy na nowo nie inicjujesz zalogowania.
Sadu2
Na początku pliku index mam session_start(); czy powinno sie ono tam sie znajdować?
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-2025 Invision Power Services, Inc.