Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Jak zablokować puste logowanie
tomek200
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


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?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
kreatiff
post
Post #2





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


  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_*.

Ten post edytował kreatiff 7.03.2015, 11:50:29
Go to the top of the page
+Quote Post
hejo
post
Post #3





Grupa: Zarejestrowani
Postów: 4
Pomógł: 1
Dołączył: 6.03.2015

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


Lub coś takiego (IMG:style_emoticons/default/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 ....
Go to the top of the page
+Quote Post
tomek200
post
Post #4





Grupa: Zarejestrowani
Postów: 102
Pomógł: 4
Dołączył: 28.12.2014

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


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. ?>
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: 24.08.2025 - 00:39