Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]BLad przy logowaniu
meteseron2
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 10.01.2016

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


Witam posiadam taki o to skrypt logowania
  1. <?php
  2. include_once('config.php');
  3.  
  4. // sprawdzamy czy user nie jest przypadkiem zalogowany
  5. if(!$_SESSION['logged']) {
  6. // jeœli zostanie naciœnięty przycisk "Zaloguj"
  7.  
  8. $name = (isset($_POST['name'])
  9. && !empty($_POST['name']))
  10. ? clear($_POST['name'])
  11. : null;
  12.  
  13. $password = (isset($_POST['password'])
  14. && !empty($_POST['password']))
  15. ? clear($_POST['password'])
  16. : null;
  17.  
  18. if($name != null && $password != null) {
  19. $mysqli = new mysqli(DBHOST, DBUSER, DBPASS, DBUSER);
  20. // filtrujemy dane...
  21. // sprawdzamy prostym zapytaniem sql czy podane dane sš prawidłowe
  22. if($result = $mysqli->query("SELECT * FROM `users` WHERE `user_name` = \'$name\' AND `user_password` = \'$password\' LIMIT 1") && $result->num_rows > 0) {
  23. // jeœli tak to ustawiamy sesje "logged" na true oraz do sesji "user_id" wstawiamy id usera
  24. $row = mysql_fetch_assoc($result);
  25. $_SESSION['logged'] = true;
  26. $_SESSION['user_id'] = $row['user_id'];
  27. echo '<p>Zostales poprawnie zalogowany! Mozesz teraz przejsc na <a href="index.php">strone glowna!</a>.</p>';
  28. } else {
  29. echo '<p>Podany login i/lub hasło jest nieprawidłowe.</p>';
  30. }
  31. $mysqli->close();
  32. }
  33.  
  34. // wyœwietlamy komunikat na zalogowanie się
  35. echo '<form method="post" action="login.php">
  36. <p>
  37. Login:<br>
  38. <input type="text" value="'.$name.'" name="name">
  39. </p>
  40. <p>
  41. Hasło:<br>
  42. <input type="password" value="'.$password.'" name="password">
  43. </p>
  44. <p>
  45. <input type="submit" value="Zaloguj">
  46. </p>
  47. </form>';
  48. } else {
  49. echo '<p>Jesteœ już zalogowany, więc nie możesz się zalogować ponownie.</p>
  50. <p>[<a href="index.php">Powrót</a>]</p>';
  51. }
  52.  
  53. ?>
Problem polega w tym, że gdy wpisuje login i haslo które mam w bazie danych mimo wszystko wywala błąd czy ktos wie w czym lezy problem?
Go to the top of the page
+Quote Post
KsaR
post
Post #2





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Linijka 22 ma 2 błędy:
1. Sql injection (koniecznie poczytaj co to, oraz instrukcje preparowane mysqli !)
2. Ta zmienna $result powinna byc w nawiasie (jak nizej) ale moge sie mylic.
  1. if (($result = $mysqli->query("SELECT * FROM `users` WHERE `user_name` = \'$name\' AND `user_password` = \'$password\' LIMIT 1")) && $result->num_rows > 0) {


Dobra, a teraz podaj jaki błąd bo nie wywróże za ciebie tongue.gif


--------------------
Go to the top of the page
+Quote Post
com
post
Post #3





Grupa: Zarejestrowani
Postów: 3 034
Pomógł: 366
Dołączył: 24.05.2012

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


@up jeden i drugi ten warunek if wgl nie powinien tak wyglądać, najpierw robisz zapytanie potem sprawdzasz, bo w tym miejscu ta zmienna wgl nie istnieje wink.gif
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 Aktualny czas: 21.08.2025 - 23:04