Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]W polowie dzialajace logowanie
Forum PHP.pl > Forum > Przedszkole
Raven1122
Witam, mam taki problem. Zrobilem logowanie, które prrawidłowo robi:
Sprawdzenie czy pola nie są puste
Sprawdzenie hasla
lecz nawet jak wpisze prawidlowe haslo to i tak nie przepuszcza mnie do strony.
Oto Kod:

  1. <?php
  2. if(isset($_POST['login']) && isset($_POST['pass'])){
  3. mysql_connect('lxxxx) or die(mysql_error());
  4.  
  5. mysql_select_db('xxxx') or die(mysql_error());
  6.  
  7. $login = $_POST['login'];
  8. $pass = $_POST['pass'];
  9.  
  10. if($login != '' && $pass != ''){
  11. }
  12.  
  13. else {
  14. echo("Wypelnij wszystkie pola");
  15. exit();
  16. }
  17.  
  18. $sql = "SELECT password FROM emes_users WHERE username = '$login'";
  19. $query = mysql_query($sql) or die(mysql_error());
  20. $row = mysql_fetch_array($query);
  21.  
  22. if($pass != $row['password']){
  23. header("Location:index.php");
  24. exit();
  25. }
  26. else {
  27. session_start();
  28. $_SESSION['auth'] == 1;
  29. }
  30. }
  31. if($_SESSION['auth'] == 1){
  32. ?>
  33. //Kod strony
  34. <?php
  35. }
  36. else {
  37. echo ("Brak uprawnien");
  38. exit();
  39. }
  40. ?>


Proszę o pomoc smile.gif
Evinek
Po pierwsze:
Zmień
  1. else {
  2. $_SESSION['auth'] == 1;
  3. }

Na
  1. else {
  2. $_SESSION['auth'] = 1;
  3. }


A

daj na samej górze.
Hasła nie sprawdzaj w PHP tylko w MYSQL.
Funkcja AND dodaj do zapytania.
Jeśli znajdzie taki nick i takie hasło to zalogować.
Mam nadzieje, że zrobisz to sam.

Podatność na sql injection.

I rób tak:
  1. $login = trim($_POST['login']);
  2. $pass = trim($_POST['pass']);


To chyba wszystko, pozdrawiam Paweł.
Raven1122
Dobra wykonalem juz zmiany w php ale teraz jak sprawidzic hasla przez mysql i gdzie dac to AND?
Evinek
Zamień
  1. $sql = "SELECT password FROM emes_users WHERE username = '$login'";
  2. $query = mysql_query($sql) or die(mysql_error());
  3. $row = mysql_fetch_array($query);
  4.  
  5. if($pass != $row['password']){
  6. header("Location:index.php");
  7. exit();
  8. }
  9. else {
  10. $_SESSION['auth'] = 1;
  11. }

Na
  1. $sql = "SELECT * FROM emes_users WHERE username = '$login' AND password = '$pass'";
  2. $query = mysql_query($sql) or die(mysql_error());
  3. if(mysql_num_rows($query) > 0){
  4. $_SESSION['auth'] = 1;
  5. }
  6. else{
  7. header("Location:index.php");
  8. exit();
  9. }


Powinno działać.

@EDIT:
Jak to wszystko zrobisz to przeanalizuj kod abyś wszystko zrozumiał.
Raven1122
teraz to juz wchodzi na board.php bez podania pasow ;/
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.