Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Logowanie + sesje
Forum PHP.pl > Forum > Przedszkole
iksior
Witam zaczynam zabawę z sesjami i zastanawiam się co jest nie tak w poniższym kodzie?
  1. <?php
  2. if($zalogowany > "0"){
  3. $_SESSION['zalogowany'] = 1;
  4. }
  5. if(isset($_SESSION['zalogowany'])){
  6. $_SESSION['user'] = $user;
  7. $_SESSION['password'] = $pass;
  8. }
  9. if(!isset($_SESSION['zalogowany'])){
  10. $user = $_POST['user'];
  11. $pass = $_POST['password'];
  12. $con = mysql_connect("sql112.byetcluster.com", "usr", "pass") or (mysql_error());
  13. $zalogowany = "0";
  14. if(!$con)
  15. mysql_select_db("b14_13xxxxx4_db", $con) or die (mysql_error);
  16. $check = mysql_query('SELECT * FROM `konta` WHERE `user` = "'.$user.'" AND `password` = "'.md5($pass).'"');
  17. $numrows = mysql_num_rows($check);
  18. if($numrows == 0){
  19. die("Użytkownik nie istnieje \n");
  20. }else{
  21. $pass = md5($pass);
  22. while($row = mysql_fetch_assoc($check)){
  23. if($pass == $row['password']){
  24. $zalogowany++;
  25. $logedIn=mysql_query( "UPDATE konta SET zalogowany='$zalogowany' WHERE user= '$user' LIMIT 1");
  26. //DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE
  27. die("ZALOGOWANO");
  28. //DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE DIE
  29. }
  30. else{
  31. //DIE DIE DIE DIE DIE DIE DIE DIE DIE
  32. die("Hasło jest niepoprawne \n");
  33. //DIE DIE DIE DIE DIE DIE DIE DIE DIE
  34. }
  35. }
  36. }
  37. }
  38. ?>
Michael2318
To może Ty nam powiedz co Tobie nie działa, a my spróbujemy wtedy znaleźć błąd...?
Pierwsze co rzuca się w oczy:

  1. if($zalogowany > "0"){


Odwołujesz się do zmiennej $zalogowany, a jej nigdzie wcześniej nie zdefiniowałeś, zmienna ta zawsze będzie równa 0 lub FALSE.

  1. if(isset($_SESSION['zalogowany'])){
  2. $_SESSION['user'] = $user;
  3. $_SESSION['password'] = $pass;
  4. }


Tu też przypisujesz do zmiennych sesyjnych zera bo te zmienne w Twoim kodzie nie istnieją, chyba że coś ukryłeś ;>

  1. $check = mysql_query('SELECT * FROM `konta` WHERE `user` = "'.$user.'" AND `password` = "'.md5($pass).'"');


zmienną $user należy filtrować, aby zabezpieczyć się przez sqli.
iksior
$zalogowany="0"; w 14 linijce a w 26 $zalogowany++
czyli tutaj zle?
Michael2318
Najpierw się przypisuje zmienne, potem się do nich odwołuje. Nie ta kolejność.
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.