Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Closed TopicStart new topic
> Gdzie mam błąd
kabexxx
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 18.03.2012

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


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. ?>
Go to the top of the page
+Quote Post
jaslanin
post
Post #2





Grupa: Zarejestrowani
Postów: 511
Pomógł: 143
Dołączył: 13.03.2010
Skąd: Jasło

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


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'
Go to the top of the page
+Quote Post
wookieb
post
Post #3





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Temat: Jak poprawnie zatytulowac watek
Go to the top of the page
+Quote Post

Closed TopicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 01:35