Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Logowanie się z wykorzystaniem Mysql
Forum PHP.pl > Forum > Przedszkole
Lekki
Cześc mam taki problem:

Pisze stronke w php. Prosta baza danych. Jedna tabllica nie ma potrzeby wiecej.
napisałem skypt logowania z wykorzystaniem mysql , poniewaz bedzie to metoda najlepsza ( tak mi sie wydaje), bo stronka bedzie wyswietlana na róznego typu urzadzeniach mobilnych i boje sie ze sesje czy cooki moga zawieść. jesli macie jakies inne propozycje to prosze o podpwiedź.

no i napisałem skrypt
  1. <html>
  2. <head>
  3. <title>.:Mobilna sieć:.</title>
  4. <meta http-equiv=\"Content-language\" content=\"pol-PL\" />
  5. <meta name=\"MSSmartTagsPreventParsing\" content=\"TRUE\" />
  6. <meta name=\"generator\" content=\"eZ publish\" />
  7.  
  8. <style type=\"text/css\">
  9. <!--
  10. .style1 {font-size: 24px}
  11. -->
  12. </style>
  13.  
  14. <META http-equiv=Content-Type content=\"text/html; charset=windows-1250\">
  15. <META content=\"MSHTML 6.00.2800.1479\" name=GENERATOR></HEAD>
  16. <base>
  17. </head>
  18. <?php
  19. @ $uzytkownik = $_POST['uzytkownik'];
  20. @ $haslo = $_POST['haslo'];
  21.  
  22. if(!isset($_POST['uzytkownik'])&&!isset($_POST['haslo']))
  23.  
  24. {
  25. //Użytkownik musi podać identyfikator i hasło
  26. ?>
  27.  <center>
  28. <h1>Zaloguj się</h1>
  29. Ta strona jest zatrzeżona.
  30. <form method = 'post' action = \"home.php\">
  31. <table border = \"0\">
  32. <tr>
  33. <th> Użytkownik </th>
  34. <td><input type = \"text' name = \"uzytkownik\"></td>
  35. </tr>
  36. <tr>
  37. <th> password </th>
  38. <td><input type = \"text' name = \"haslo\"></td>
  39. </tr>
  40. <tr>
  41. <td colspan = \"2\" align = \"center\">
  42.  <input type = submit value = \"Zaloguj się\">
  43. </td>
  44. </tr>
  45. </form>
  46. </center>
  47.  
  48. <?php
  49. }
  50. else
  51. {
  52.  //połącz się z bazą MySQL
  53. $mysql = mysqli_connect('localhost', 'uwierzytel', 'uwierzytel' );
  54. if(!$mysql)
  55. {
  56. echo 'Nie można połączyć się z bazą danych.';
  57. }
  58. //wybierz właściwą bazę danych
  59. $wybrana = mysqli_selectdb($mysql, 'uwierz');
  60. if(!$wybrana)
  61. {
  62. echo 'Błąd wyboru bazy danych. ' ;
  63. }
  64.  
  65. //znajdź pasujący wiersz
  66. $zapytanie = &#092;"select count(*) from uwierzytelnieni_uzytkownicy where
  67.  uzytkownik= '$uzytkownik' and
  68.  haslo= '$haslo'&#092;";
  69.  
  70. $wynik = mysqli_query( $mysql, $zapytanie);
  71. if(!$wynik)
  72. {
  73. echo ' Nie można wykonac zapytania.';
  74. }
  75. $wiersz = mysql_fetch_row( $wynik);
  76.  
  77. $ile = $wiersz[0];
  78.  
  79. if ( $ile > 0)
  80. {
  81. // podana kombinacja: identyfikator i hasło jest prawidłowa
  82. echo '<h1> Strona jest Ok</h1>';
  83. echo ' Fajnie , że udao się to zobaczyć.';
  84. }
  85. else
  86. {
  87. //Kombinacja nie jest ok
  88. echo '<h1>17:03 2005-05-26Odejdź stąd</h1>';
  89. echo ' Nie jesteś uprawniony do oglądania tej strony.';
  90. }
  91. }
  92. ?>



No i co sie dzieje? A mianowicie nic ! przelatuje przez niego nic nie robiac idac do nastepnej strony. Nie pokazuje ze hasło złe dobre, czy sie połaczył. uzywam easyphp.

prosze Was o zweryfikowanie skryptu lub o doradzenie alternatywnej metody bezpiecznego logowania


Z góry dzięki.

Pozdrawiam Lekki
SongoQ
Hm niby wydaje sie ok. Po wstawiaj co kilka lini echo i sprawdzaj co wykonuje.
Mam jeszcze jedna uwage.
Napisales
Cytat
bo stronka bedzie wyswietlana na róznego typu urzadzeniach mobilnych

A hasla w bazie masz niekodowane - oj nie ladnie to tak. Ja bym nie chcial czegos takiego uzywac.
Ociu
  1. <?php
  2.  //znajdź pasujący wiersz
  3. $zapytanie = &#092;"select * from uwierzytelnieni_uzytkownicy where
  4.  uzytkownik= '$uzytkownik' and
  5.  haslo= '$haslo'&#092;";
  6.  
  7.  if ( mysql_num_rows($zapytanie) == 1) // Musi być 1 taki user
  8. {
  9. // True
  10. echo '<h1> Strona jest Ok</h1> 
  11. Fajnie , że udao się to zobaczyć.';
  12. }
  13. else
  14. {
  15. // False
  16. echo '<h1>'.date(&#092;"H:i d.m.Y\").' Odejdź stąd</h1> Nie jesteś uprawniony do oglądania tej strony.';
  17. }
  18.  
  19. ?>
SongoQ
  1. <?php
  2.  
  3. $zapytanie = &#092;"select count(*) from uwierzytelnieni_uzytkownicy where
  4.  uzytkownik= '$uzytkownik' and
  5.  haslo= '$haslo'&#092;";
  6.  
  7. $wynik = mysqli_query( $mysql, $zapytanie);
  8. if(!$wynik)
  9. {
  10. echo ' Nie można wykonac zapytania.';
  11. }
  12. $wiersz = mysql_fetch_row( $wynik);
  13.  
  14. $ile = $wiersz[0];
  15.  
  16. if ( $ile > 0)
  17.  
  18. ?>


@Ociu Tylko to to samo robi bo masz tam count(), no chyba ze jest jakis blad na ktory nie zwrocilem uwagi.
Lekki
szyfrowanie bedzie dołączone. Lecz niech na razie zadział ten skrypt
SongoQ
OK, bo szyfrowanie to bardzo wazna rzecz w tego typu serwisach.

Znalazles blad w skrypcie? Jesli nie to tak jak pisalem wstawiaj co kawalek echo i zobaczysz przez jakie warunki przechodzi.
Ociu
SongoQ: Ale po co tworyć aż tyle skryptu, skoro mySQL ma takie dobrodziejstwo ?

Wracając do tematu. Sprawdź czy podajesz w ogóle dobrze dane.
SongoQ
@Ociu z tym sie zgadzam ze Twoj kod jest bardziej optymalniejszy. Chcialem tylko zwrocic uwage ze to co pisal @Lekki tez jest ok.
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.