Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> > skrypt logowania PHP polaczony z baza danych MySQL
major697
post
Post #1





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 7.08.2014

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


Cześć zrobiłem krótki skrypt logowania się do bazy danych, wygląda następująco:

  1. <?php
  2. //ustawienie sesji
  3. session_save_path("session/");
  4.  
  5. include 'db.php';
  6. //return print_r ($_POST);
  7. if (isset($_POST['log_in'])) {
  8. $login = $_POST['login'];
  9. $haslo = $_POST['pass'];
  10. $hasloMd5 = md5($haslo);
  11.  
  12. if ($zapytanie = "SELECT * FROM `uzytkownicy` WHERE `haslo` = ? AND `login` = ?") {
  13. $result = $db_mysqli->prepare($zapytanie);
  14. $result->bind_param('ss', $hasloMd5, $login);
  15. $result->execute();
  16. $result->close();
  17. } elseif ($db_mysqli->error) {
  18. echo "Could not prepare SQL: " . $db_mysqli->error;
  19. }
  20.  
  21. $result2 = mysqli_num_rows($result);
  22. $result3 = mysqli_fetch_array($result);
  23. $result4 = mysqli_fetch_array($result);
  24.  
  25. //$result4 = mysqli_fetch_all($result);
  26. print_r($result2);
  27. echo ($result3);
  28. //echo ($result4);
  29.  
  30.  
  31. //echo($result2);
  32. echo printf ($result2);
  33. echo "<br />";
  34. echo printf ($result3);
  35. echo "<br />";
  36. echo printf ($result4);
  37. /*
  38. if ($result3['kod'] != "aktywowano") {
  39. return header("Location: index.php?error=7");
  40. }
  41.  
  42. if (empty($login) || empty($hasloMd5)) {
  43.  
  44. return header("Location: index.php?error=5");
  45.  
  46. }
  47.  
  48. if ($hasloMd5 != $result3['haslo']) {
  49. return header("Location: index.php?error=6");
  50.  
  51. }
  52.  
  53. if ($ileUzyt = $result3 > 0) {
  54. echo "jest wiecej niz 1";
  55.  
  56. } else {
  57. return header("Location: index.php?error=4");
  58.  
  59. }
  60. */
  61. }
  62. ?>


Problem jest prawdopodobnie w sekcji zapytania (linie: 13-20) Ponieważ gdy zrobię zwrócenie wyników to wyrzuca mi wartość 0 (Linia 35). Nie wiem dlaczego zapytanie jest błędne i nie wyrzuca mi nic z bazy danych.

Podam także działający skrypt logowania (ale ten jest bez zabezpieczeń przed SQL Infection):

  1. <?php
  2.  
  3. if (isset($_POST['log_in'])) {
  4. $login = $_POST['login'];
  5. $haslo = $_POST['pass'];
  6. $hasloMd5 = md5($haslo);
  7.  
  8. $zapytanie = "SELECT * FROM `uzytkownicy` WHERE `login` = '$login' AND `haslo` = '$hasloMd5'";
  9. $result = $db_mysqli->query($zapytanie);
  10. $result2 = mysqli_num_rows($result);
  11. $result3 = mysqli_fetch_assoc($result);
  12.  
  13.  
  14. if ($ileUzyt = $result3 > 0) {
  15. echo "jest wiecej niz 1";
  16.  
  17. } else {
  18. header("Location: index.php?error=4");
  19. exit();
  20. }
  21.  
  22. }
  23.  
  24. ?>


Oraz formularz logowania:

  1. <!DOCTYPE html>
  2. <title>Magazyn na PHP</title>
  3. <meta name="name" content="content" charset="utf-8">
  4. </head>
  5.  
  6. <?php
  7.  
  8. if (isset($_GET['error'])) {
  9. echo "<pre>";
  10. switch ($_GET['error']) {
  11. case 0:
  12. echo "Wypelnij wszystkie pola";
  13. break;
  14. case 1:
  15. echo "Hasla nie sa identyczne";
  16. break;
  17. case 2:
  18. echo "Taki ziomek juz istnieje";
  19. break;
  20. case 3:
  21. echo "Takie konto nie zostało założone!";
  22. break;
  23. case 4:
  24. echo "Nie ma takiego uzytkownika w bazie danych";
  25. break;
  26. case 5:
  27. echo "Nie wpsiałeś loginu i/lub hasła";
  28. break;
  29. case 6:
  30. echo "Wpisałeś błędne hasło!";
  31. break;
  32. case 7:
  33. echo "Konto nie zostało jeszcze aktywowane!";
  34. break;
  35. default:
  36. echo "Nieznany blad";
  37. break;
  38. }
  39. echo "</pre>";
  40. }
  41.  
  42. if (isset($_GET['success'])) {
  43. echo "<h3>";
  44. switch ($_GET['success']) {
  45. case 0:
  46. echo "rejestracja OK";
  47. break;
  48. case '1':
  49. echo "Pomyslnie zamieniono na aktywowano";
  50. break;
  51. default:
  52. echo "Inny błąd";
  53. break;
  54. }
  55. echo "</h3>";
  56. }
  57.  
  58. ?>
  59.  
  60. <legend>Logowanie do magazynu</legend>
  61. <form action="login.php" method="post" accept-charset="utf-8">
  62. <label><input type="text" name="login" placeholder="wpisz swoj login"></label>
  63. <label><input type="password" name="pass" placeholder="podaj haslo"></label>
  64. <input type="submit" name="log_in" value="Zaloguj"></input>
  65.  
  66. </form>
  67. <br /><br />
  68. <legend>rejestracja do magazynu</legend>
  69. <form action="login.php" method="post" accept-charset="utf-8">
  70. <label><input type="email" name="login" placeholder="wpisz swoj E-mail"></label>
  71. <label><input type="password" name="pass" placeholder="podaj haslo"></label>
  72. <label><input type="password" name="pass2" placeholder="powtorz haslo"></label>
  73. <input type="submit" name="register" value="Zarejestruj"></input>
  74.  
  75. </form>
  76.  
  77. </body>
  78. </html>
Go to the top of the page
+Quote Post

Posty w temacie


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: 20.08.2025 - 17:38