Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Logowanie + sesje
iksior
post 25.05.2013, 08:48:42
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 30.01.2010

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


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. ?>
Go to the top of the page
+Quote Post
Michael2318
post 25.05.2013, 08:52:34
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


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.

Ten post edytował Michael2318 25.05.2013, 08:56:52
Go to the top of the page
+Quote Post
iksior
post 25.05.2013, 09:32:43
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 30.01.2010

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


$zalogowany="0"; w 14 linijce a w 26 $zalogowany++
czyli tutaj zle?
Go to the top of the page
+Quote Post
Michael2318
post 25.05.2013, 13:49:49
Post #4





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


Najpierw się przypisuje zmienne, potem się do nich odwołuje. Nie ta kolejność.
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 6.07.2025 - 21:21