Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MySQL]problem ze skryptem logowania
Forum PHP.pl > Forum > Przedszkole
sakerski
Witam mam problem ze skryptem logowaniem za pomocą sesji logowanie.php.
Stwożyłem bazę danych users
user_id
use_imie
user_nazwisko
user_uzytkownik
user_haslo

do bazy wprowadzilem uzytkownika z phpmyadmin dla testow.

przy próbie logowania uzytkownika wpisanego do bazy danych wyswietla się komunikat:

Notice: Trying to get property of non-object in C:\xampp\htdocs\akademia\logowanie.php on line 22

oraz komunikat który pojawia się gdy próba logowania była nieudana Zalogowanie niemożliwe

  1. <?php
  2.  
  3. if(isset($_POST['iduzytkownika']) && isset($_POST['haslo']))
  4. {
  5. // jeżeli użytkownik właśnie podjął próbę zalogowania
  6. $iduzytkownika = $_POST['iduzytkownika'];
  7. $haslo = $_POST['haslo'];
  8.  
  9. $bd_lacz = new mysqli('localhost', 'root', 'proview', 'pracownicy');
  10.  
  11. if (mysqli_connect_errno()) {
  12. echo 'Połączenie z bazą danych nie powiodło się: '.mysqli_connect_error();
  13. exit();
  14. }
  15.  
  16. $zapytanie = 'select * from users'
  17. ."where user_uzytkownik=('$iduzytkownika') "
  18. ." and user_haslo=sha1('$haslo')";
  19.  
  20. $wynik = $bd_lacz->query($zapytanie);
  21. if($wynik -> num_rows > 0)
  22. {
  23. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  24. $_SESSION['prawid_uzyt'] = $iduzytkownika;
  25. }
  26. $bd_lacz->close();
  27. }
  28. ?>
  29. <html>
  30. <body>
  31. <h1>Strona główna</h1>
  32. <?
  33. if(isset($_SESSION['prawid_uzyt']))
  34. {
  35. echo 'Użytkownik zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />';
  36. echo '<a href="wylog.php">Wylogowanie</a><br />';
  37. }
  38. else
  39. {
  40. if(isset($iduzytkownika))
  41. {
  42. // jeżeli próba logowania była nieudana
  43. echo 'Zalogowanie niemożliwe.<br />';
  44. }
  45. else
  46. {
  47. // nie było próby logowania lub nastąpiło wylogowanie
  48. echo 'Użytkownik niezalogowany.<br />';
  49. }
  50.  
  51. // tworzenie formularza logowania
  52. echo '<form method="post" action="logowanie.php">';
  53. echo '<table>';
  54. echo '<tr><td>Identyfikator użytkownika:</td>';
  55. echo '<td><input type="text" name="iduzytkownika"></td></tr>';
  56. echo '<tr><td>Hasło:</td>';
  57. echo '<td><input type="password" name="haslo"></td></tr>';
  58. echo '<tr><td colspan="2" align="center">';
  59. echo '<input type="submit" value="Logowanie"></td></tr>';
  60. echo '</table></form>';
  61. }
  62. ?>
  63. <br>
  64. <a href="tylko_czlonkowie.php">Część członkowska</a>
  65. </body>
  66. </html>
Bateria
zobacz teraz
  1. <?php
  2.  
  3. if(isset($_POST['iduzytkownika']) && isset($_POST['haslo']))
  4. {
  5. // jeżeli użytkownik właśnie podjął próbę zalogowania
  6. $iduzytkownika = $_POST['iduzytkownika'];
  7. $haslo = $_POST['haslo'];
  8.  
  9. $bd_lacz = new mysqli('localhost', 'root', 'proview', 'pracownicy');
  10.  
  11. if (mysqli_connect_errno()) {
  12. echo 'Połączenie z bazą danych nie powiodło się: '.mysqli_connect_error();
  13. exit();
  14. }
  15.  
  16. $zapytanie = 'select * from users'
  17. ."where user_uzytkownik=('$iduzytkownika') "
  18. ." and user_haslo=sha1('$haslo')";
  19.  
  20. if(mysql_num_rows($zapytanie) == 1)
  21. {
  22. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  23. $_SESSION['prawid_uzyt'] = $iduzytkownika;
  24. }
  25. $bd_lacz->close();
  26. }
  27. ?>
  28. <html>
  29. <body>
  30. <h1>Strona główna</h1>
  31. <?
  32. if(isset($_SESSION['prawid_uzyt']))
  33. {
  34. echo 'Użytkownik zalogowany jako: '.$_SESSION['prawid_uzyt'].'<br />';
  35. echo '<a href="wylog.php">Wylogowanie</a><br />';
  36. }
  37. else
  38. {
  39. if(isset($iduzytkownika))
  40. {
  41. // jeżeli próba logowania była nieudana
  42. echo 'Zalogowanie niemożliwe.<br />';
  43. }
  44. else
  45. {
  46. // nie było próby logowania lub nastąpiło wylogowanie
  47. echo 'Użytkownik niezalogowany.<br />';
  48. }
  49.  
  50. // tworzenie formularza logowania
  51. echo '<form method="post" action="logowanie.php">';
  52. echo '<table>';
  53. echo '<tr><td>Identyfikator użytkownika:</td>';
  54. echo '<td><input type="text" name="iduzytkownika"></td></tr>';
  55. echo '<tr><td>Hasło:</td>';
  56. echo '<td><input type="password" name="haslo"></td></tr>';
  57. echo '<tr><td colspan="2" align="center">';
  58. echo '<input type="submit" value="Logowanie"></td></tr>';
  59. echo '</table></form>';
  60. }
  61. ?>
  62. <br>
  63. <a href="tylko_czlonkowie.php">Część członkowska</a>
  64. </body>
  65. </html>
sakerski
po zastosowaniu zmiany pojawił się problem z funkcją mysql_num_rows()

komunikat przy próbie logowania zmienił się
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\xampp\htdocs\akademia\uwierz_glowny.php on line 21
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.