Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Wylogowywanie
urbizdw
post
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.05.2004

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


  1. <?php
  2.  
  3. require ("config.cfg");
  4.  
  5. ##Zmienne
  6.  
  7. $polaczenie=mysql_connect("localhost", "root", "blabla1");
  8. $ip=$_SERVER['REMOTE_ADDR'];
  9. $miesiace = array(1 => 'stycznia', 'lutego', 'marca', 'kwietnia', 'maja', 'czerwca', 'lipca', 'sierpnia', 'września', 'października', 'listopada', 'grudnia');
  10. $data=explode("|", date('Y|n|d|H:i:s'));
  11. $data = $data[2] .' ' .$miesiace[$data[1]] .' ' .$data[0] .', ' .$data[3];
  12. $password = $_POST['password'];
  13. $login = $_POST ['username'];
  14. ##Koniec zmiennych 
  15.  
  16.  
  17. if ($polaczenie == false ) {
  18. echo 'Nie mozna nawiazac polaczenie z baza MySQL';
  19. }
  20. $wyb_baze = mysql_query('use users;');
  21. $spr_dane = mysql_query("select * from usernames where login='$login' and password='$password'");
  22. $odp = mysql_fetch_array($spr_dane, MYSQL_ASSOC);
  23.  
  24. if ($odp) {
  25. $_SESSION['login'] = $login;
  26. $_SESSION['haslo'] = $password;
  27. $_SESSION['zalogowany']=1;
  28. echo 'Zalogowany:'.$login.' z IP:'.$ip;
  29. $plik=fopen ($src_logi_db, "a");
  30. fwrite($plik, "$data, Zalogwany $login z IP: $ipn");
  31. fclose($plik);
  32. echo '<a href=login.php?wyloguj=1>Wyloguj</a>';
  33. if ($wyloguj) {
  34. header("Location: login.php");
  35. }
  36. }
  37. ?>



Jak sie zaloguje wyswietla ze sie zalogowalem ale jak zrobic by po kliknieciu na wyloguj usunelo sesje co mam teraz zle?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
starach
post
Post #2





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Zdaje mi się że w nieodpowiednim miejscu masz
if ($wyloguj) {
session_unset();
session_destroy();
header("Location: login.php");
}
Zwróć uwagę że logując się pobierasz z tablicy POST nazwę użytkownika i hasło.
Kiedy klikniesz na wyloguj w tablicy nie ma tych danych przez co zapytanie do bazy nie zwróci żadnego wyniku
i powyższy kod nie zostanie wykonany.
Go to the top of the page
+Quote Post
urbizdw
post
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 24.05.2004

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


Wiec jak mam pobrac te dane? I jak zmienic kod by dzialalo?
Go to the top of the page
+Quote Post
domis86
post
Post #4





Grupa: Zarejestrowani
Postów: 255
Pomógł: 5
Dołączył: 20.03.2007
Skąd: Kraków

Ostrzeżenie: (30%)
XX---


po pierwsze:
co to jest $wyloguj?
gdzie jest zainicjowane?
nie mow ze uzywasz register_globals...


po drugie:
gdzie sprawdzasz czy uzytkownik juz jest zalogowany? (czyli czy jest $_SESSION['zalogowany'])
teraz wyglada to tak, ze zawsze od nowa logujesz usera - czyli od nowa sprawdzasz login i haslo i zapisujesz zmienne do sesji.
Poczytaj jakies tutoriale o sesjach i logowaniu uzytkownikow


po trzecie:
uruchom sobie jeszcze raz w glowie ten program instrukcja po instrukcji, i zadaj sobie pytanie nastepującej tresci:
"czy taka konstrukcja ma jakikolwiek sens?":


if ($odp) {
...
tu logujesz usera
...
if ($wyloguj) {
...
tu wylogowujesz
...
}
}

czyli logujesz a pozniej od razu wylogowujesz
Go to the top of the page
+Quote Post
bronchos
post
Post #5





Grupa: Zarejestrowani
Postów: 25
Pomógł: 0
Dołączył: 16.03.2007

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


Mniej więcej tak:

  1. <?php
  2. ...
  3.  
  4. if ($odp) {
  5. $_SESSION['login'] = $login;
  6. $_SESSION['haslo'] = $password;
  7. $_SESSION['zalogowany']=1;
  8. echo 'Zalogowany:'.$login.' z IP:'.$ip;
  9. $plik=fopen ($src_logi_db, "a");
  10. fwrite($plik, "$data, Zalogwany $login z IP: $ipn");
  11. fclose($plik);
  12. echo '<a href=login.php?wyloguj=1>Wyloguj</a>';
  13. }
  14. if (isset($_GET['logout']) && $_GET['logout']==1) {
  15. // dla pewności możesz dodać
  16. setcookie('PHPSESSID','');
  17.  
  18. header('Location: /login.php');
  19. die();
  20. }
  21. ?>

A link do wylogowania:
  1. <a href="?logout=1">wyloguj</a>


Ten post edytował bronchos 23.03.2007, 16:41:08
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 23.08.2025 - 19:02