Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gdzie mam błąd
Forum PHP.pl > Forum > PHP
kabexxx
Mam tutaj problem z dwoma dokumentami. Kiedy się zalogujesz, nie możesz się wylogować. Nie wiem dlaczego. Mógłby mi ktoś pomóc?
Fragment kodu index.php
  1. <?php
  2. session_start(); // rozpoczęcie sesji
  3.  
  4.  
  5. if ($_GET["wylogowany"] == "tak")
  6. {
  7. echo 'Wylogowałeś się';
  8. }
  9.  
  10. if (!isset($_SESSION['login']))
  11. {
  12. echo '<a href="logowanie.php">Zaloguj</a></br>
  13. <a href="rejestracja.php">Zarejestruj</a></br>';
  14. }
  15.  
  16. if (isset($_SESSION['login']))
  17. {
  18. echo '<a href="logowanie.php?wylogowanie">Wyloguj</a></br>
  19. <a href="logowanie.php"s>lo</a>';
  20. }
  21.  
  22. ?>


Fragment kodu strona logowanie.php

  1. <?php
  2.  
  3. session_start(); // rozpoczęcie sesji
  4.  
  5. if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika
  6.  
  7. if ($_POST['wyslane']) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt
  8.  
  9. include 'db.php'; // połączenie się z bazą danych
  10. $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
  11.  
  12. $login = $_POST["login"];
  13. $haslo = $_POST["haslo"];
  14.  
  15. $haslo = md5($haslo); // szyfrowanie podanego hasła
  16.  
  17. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  18. login='$login' and haslo='$haslo' and status=0");
  19.  
  20. // jeżeli użytkownik zarejestrował się, a nie aktywował swojego konta, to wyświetla się komunikat
  21. if (mysql_num_rows($wynik) == 1) {
  22. $informacja = mysql_fetch_array($wynik);
  23. echo '<p>Nie aktywowałeś jeszcze swojego konta. Aby to zrobić, wejdź w swoją skrzynkę odbiorczą, a następnie znajdź wiadmość z linkiem aktywacyjnym i aktywuj swoje konto</p>';
  24. }
  25.  
  26. // jeżeli wszystko jest dobrze, użytkownik się loguje
  27. $wynik=mysql_query("SELECT * FROM $tabela WHERE
  28. login='$login' and haslo='$haslo' and status=1");
  29.  
  30. if (mysql_num_rows($wynik) == 1) {
  31. $informacja = mysql_fetch_array($wynik);
  32. $_SESSION["login"] = $informacja["login"];
  33. header('Location: index.php ');
  34. } else {
  35. echo '<p>Zostały wprowadzone nieprawidłowe dane</p>';
  36. }
  37. mysql_close($polaczenie);
  38. }
  39.  
  40. // tworzenie formularza HTML
  41. echo <<< KONIEC
  42.  
  43.   <form action="logowanie.php" method="post">
  44.   <input type="hidden" name="wyslane" value="TRUE" />
  45.  
  46.   <p>Login: <input type="text" name="login" /></p>
  47.   <p>Hasło: <input type="password" name="haslo" /></p>
  48.  
  49.   <p><input type="submit" value="zaloguj" /></p>
  50.  
  51.   </form>
  52. KONIEC;
  53.  
  54. } else {
  55. header('Location: / '); // zalogowany użytkownik zostaje przekierowany na stronę główną
  56. }
  57.  
  58. if ($_GET["wylogowanie"] == "tak")
  59. {
  60. // niszczenie sesji użytkownika
  61. echo '<p>Wylogowany</p>
  62. <a href="index.php?wylogowany">strona główna</a>';
  63. }
  64.  
  65. ?>
jaslanin
To chyba powinno być raczej w dziale przedszkole.

  1. echo '<a href="logowanie.php?wylogowanie">Wyloguj</a></br>



  1. if ($_GET["wylogowanie"] == "tak")


Jak widzisz link wylogowujący inicjuje jedynie element tablicy $_GET['wylogowywanie'] jednak nie przepisuje jej wartości 'tak' którą sprawdzasz później.

Zmień warunek lub przypisz zmień link tak by przypisywał do tego elementu tablicy wartość 'tak'
wookieb
Temat: Jak poprawnie zatytulowac watek
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.