Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]Jak zablokować puste logowanie
Forum PHP.pl > Forum > Przedszkole
tomek200
Plik login.php
  1. <?php
  2.  
  3.  
  4. include('connect.php');
  5.  
  6. $login = $_POST['login'];
  7. $haslo = $_POST['password'];
  8.  
  9. $zapytanie = mysql_query("SELECT login FROM user WHERE login = '$login'");
  10. $wynik_zapytania = mysql_fetch_array($zapytanie);
  11.  
  12. if ($wynik_zapytania[0] != $login) {
  13. echo 'User nie istnieje';
  14. }else{
  15. $zapytanie = mysql_query("SELECT password FROM user WHERE login = '$login'");
  16. $wynik_zapytania = mysql_fetch_array($zapytanie);
  17.  
  18. if ($haslo == $wynik_zapytania[0]) {
  19.  
  20. $_SESSION["logged"] = true;
  21. header('Location: index.php');
  22.  
  23. }
  24. else{
  25. header('Location: admin_login.php');
  26. }
  27. }
  28.  
  29. ?>

Mój problem to kiedy w formularzu logowania nie wpisze nic to przekierowuje mnie na strone docelową. Co tu źle napisałem?
kreatiff
  1. if ( trim($login) != '' && trim($haslo) != '' ) ... // to dopiero sprawdzaj dane w bazie
Druga sprawa - w żaden sposób nie walidujesz tego co ktoś wpisał tylko od razu szukasz w bazie, to się może źle skończyć. NIGDY nie ufa się danym z zewnątrz. ZAWSZE zakłada się, że mogą być złośliwe.
Porada - użyj PDO i prepared statements w miejsce funkcji mysql_*.
hejo
Lub coś takiego smile.gif

  1.  
  2. $login = mysql_real_escape_string(trim($_POST['login']));
  3. $haslo = mysql_real_escape_string(trim($_POST['password']));
  4.  
  5. // sprawdzamy czy wszystkie pola zostały wypełnione
  6. if(empty($login) || empty($haslo)) {
  7. echo '<p>Musisz podać login i hasło.</p>';
  8. } elseif ....
tomek200
Jeszcze jedno czy takie zabezpieczenie podstron wystarczy?
  1. <?php
  2. if(!isset($_SESSION['logged']))
  3. {
  4. header('Location: admin_login.php');
  5. die();
  6. }
  7.  
  8. ?>
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.