Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: uwierzytelnianie php MySQL
Forum PHP.pl > Forum > PHP
maras_
Witam wszystkich uzytkownikow. To moj pierwszy post na tym forum. Przejdzmy odrazu do rzeczy. Przedstawie skrypt php i mysql z którym mam problem. Chodzi o komunikat wyświetlany podczas podania loginu i hasła, który brzmi "nie można wykonać zapytania".
  1. <?php
  2. $uzytkownik = $_POST['uzytkownik'];
  3. $haslo = $_POST['haslo'];
  4.  
  5. if(!isset($_POST['uzytkownik'])&&!isset($_POST['haslo']))
  6. {
  7.  
  8. ?>
  9. <h1>Zaloguj sie</h1>
  10.  
  11. <form method = "post" action = "zastrz_baza.php">
  12. <table border = "1">
  13. <tr>
  14. <th> Uzytkownik </th>
  15. <td> <input type = "text" name = "uzytkownik"> </td>
  16. </tr>
  17. <tr>
  18. <th> Haslo </th>
  19. <td> <input type = "password" name = "haslo"> </td>
  20. </tr>
  21. <tr>
  22. <td colspan = "2" align = "center">
  23. <input type = submit value = "Zaloguj sie">
  24. </td>
  25. </tr>
  26. </form>
  27. <?php
  28. }
  29. else
  30. {
  31.  
  32. $mysql = mysqli_connect( 'localhost','marek','marek123', 'uwierz' );
  33. if(!$mysql)
  34. {
  35. echo 'Brak polaczenia z baza danych.';
  36. }
  37.  
  38. $wybrana = mysqli_select_db($mysql, 'uwierz');
  39. if(!$wybrana)
  40. {
  41. echo 'Blad wyboru bazy danych.';
  42. }
  43.  
  44.  
  45. $zapytanie = "select count(*) from uwierzytelnieni_uzytkownicy where
  46. uzytkownik = '$uzytkownik' and
  47. haslo = '$haslo'";
  48.  
  49. $wynik = mysqli_query( $mysql, $zapytanie );
  50. if(!$wynik)
  51. {
  52. echo 'Nie mozna wykonac zapytania.';
  53. }
  54.  
  55. $wiersz = mysqli_fetch_row( $wynik );
  56. $ile = $wiersz[0];
  57.  
  58. if ( $ile > 0 )
  59. {
  60.  
  61. echo '<h1>Oto ona!</h1>';
  62.  
  63. }
  64. else
  65. {
  66.  
  67. echo '<h1>Odejdz stad!</h1>';
  68.  
  69. }
  70. }
  71. ?>

-----------------------------------------------

create database uwierz;

use uwierz;

create table uwierzytelnieni_uzytkownicy (
uzytkownik varchar(20) not null,
haslo varchar(40) not null,
primary key (uzytkownik)
);

insert into uwierzytelnieni_uzytkownicy values
('uzytkownik', 'haslo');

insert into uwierzytelnieni_uzytkownicy values
( 'testowy', sha1('haslo') );

grant select on uwierz.*
to uwierzytel@localhost
identified by 'uwierzytel';

flush privileges;
TrevorGryffits
Odpowiednią linijkę zamień na:
  1. $wynik = mysqli_query( $mysql, $zapytanie ) or mysqli_error();
maras_
Niestety to nie pomogło i w dodatku wyświetla mi teraz komunikat "Warning: mysqli_error() expects exactly 1 parameter, 0 given in D:\Program Files\wamp\www\zastrz_baza.php on line 60"
TrevorGryffits
Sorry. Miało być
  1. mysqli_error($mysql);
maras_
Dalej to samo, może kwestia tkwi w zapytaniu sql ? A czy mógłbyś mi wyjaśnić co oznacza to ostrzeżenie ? Warning: mysqli_fetch_row() expects parameter 1 to be mysqli_result, boolean given in D:\Program pojawia się ono gdy usune pętle if (!$wynik). Jest mi potrzebny ten skrypt a nie mogę sobie dać z nim rady mellow.gif
Spawnm
maras_ używaj BBcode dla kodów które dajesz na forum, tym razem poprawiłem za ciebie, w przyszłości rób to sam.
TrevorGryffits
Dalej mówi, że brakuje mu jednego parametru? Jak to mawiali starożytni Egipcjanie: NIEMOŻLIWE!:)
Błąd na 99% jest gdzieś w zapytaniu. Polecenie mysqli_error pomoże ci znaleźć gdzie.
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.