Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Błąd gdzieś w tym, skrypcie
Forum PHP.pl > Forum > PHP
M05
Witam. Nie mogę znaleźć błędu w tym kodzie... Przebrnąłem już przez kilka poprawek ale stanąłem w martwym punkcie.
Po podaniu nazwy uzytkownika i hasla ciagle wyskakuje komunikat ze podaje zle dane choć podaję dobre. Może ktoś widzi ten błąd?

Pliki jakie wchodzą w grę:



wyloguj.php
index.php





wyloguj.php :

  1. <? php
  2. header ('Location: index.php');
  3. ?>



index.php

  1.  
  2. <?php
  3. // core
  4.  
  5. $ref = @$_SERVER['HTTP_REFERER'];//powrot
  6. $plik = $_SERVER['SCRIPT_NAME'];//plik
  7.  
  8. function zalogowany(){
  9. if (isset($_SESSION['uzyt'])&&!empty($_SESSION['uzyt'])){
  10. return true;
  11. }else{
  12. return false;
  13. }
  14. }
  15.  
  16.  
  17. // polaczenie
  18. $host = 'localhost';
  19. $user = 'root';
  20. $pass= '';
  21.  
  22. $bd = 'tutorial';
  23.  
  24. $pol = @mysql_connect($host, $user, $pass);
  25. $w_bd = @mysql_select_db($bd);
  26.  
  27. if (!$pol || !$w_bd){
  28. die('Przepraszamy nie mozna polaczyc sie z baza danych, sproboj pozniej.');
  29. }
  30. ?>
  31. <html>
  32. <head>
  33. <title>Rejestracja</title>
  34. </head>
  35. <body>
  36. <?php
  37.  
  38. if(!zalogowany()){
  39.  
  40.  
  41. // forma.php
  42. if(isset($_POST['uzytkownik'])&&
  43. isset($_POST['haslo'])){
  44. $uzy = $_POST['uzytkownik'];
  45. $has = $_POST['haslo'];
  46. $hah = sha1($has); // encrypted
  47. if (!empty($uzy)&&
  48. !empty($has)){
  49. $q = sprintf( "SELECT * FROM `uzytkownicy` WHERE `uzytkownik` = '".mysql_real_escape_string($uzy)."' AND `haslo` = ' ".mysql_real_escape_string($hah)." ' ");
  50.  
  51. if($wQ = mysql_query($q))
  52. {
  53. $wQr = mysql_num_rows($wQ);
  54. if($wQr == 0){
  55.  
  56.  
  57.  
  58.  
  59. $wynik = mysql_query("SELECT * FROM uzytkownicy")
  60. or die('Błąd zapytania');
  61.  
  62. if(mysql_num_rows($wynik) > 0) {
  63. /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
  64. echo "<table cellpadding=\"2\" border=1>";
  65. while($r = mysql_fetch_assoc($wynik)) {
  66.  
  67.  
  68.  
  69. echo "<tr>";
  70. echo "<td>".$r['uzytkownik']."</td>";
  71. echo "<td>".$r['haslo']."</td>";
  72. echo "<td>
  73. <a href=\"index.php?a=del&amp;id={$r['id']}\">DEL</a>
  74. <a href=\"index.php?a=edit&amp;id={$r['id']}\">EDIT</a>
  75. </td>";
  76. echo "</tr>";
  77. }
  78. echo "</table>";
  79. }
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87. echo 'Zla nazwa uzytkownika lub haslo';
  88. }else if($wQr ==1){
  89. $uzyt = mysql_result($wQ, 0, 'id');
  90. $_SESSION['uzyt']=$uzyt;
  91. header('Location: '.$ref);
  92. }
  93. }
  94. }else{
  95. echo'Musisz wypelnic wszystkie pola';
  96. }
  97. }
  98.  
  99. ?>
  100. <form action="<?php echo $plik; ?>" method="POST">
  101. Uzytkownik: <input type="text" name="uzytkownik"/>
  102. Haslo: <input type="password" name="haslo"/>
  103. <input type="submit" value="Zaloguj się"/>
  104. </form>
  105.  
  106. <?php
  107.  
  108. } else{
  109. echo 'jestes zalogowany! <a href="wyloguj.php">wyloguj</a>';
  110. }
  111. ?>
  112. <br/><br/>
  113. <a href="rejestracja.php">rejestracja</a><br/>
  114. <a href="index.php">strona domowa</a><br/>
  115. </body>
  116. </html>
  117.  



Baza danych;

baza: tutorial
tabela: uzytkownicy

kolumny; id, uzytkownik, haslo, email

haslo ma kodowanie w bazie: sha1


Ma ktoś pomysł?
Michael2318
  1. ' ".mysql_real_escape_string($hah)." '


Jak na moje to po pierwsze mysql_real_escape_string do wywalenia, na cholere skoro tam będzie tylko hash.
Po drugie tam masz spacje przed i po. Tak zapisz:
  1. '".$hah."'
M05
Ok działa. Tak jak mówiłeś hasło ktore wklepywałem
zamiast hasło="hasło" było haslo="_haslo_"
Po wywaleniu spacji działa, nie wywaliłem mysql_real_escape_string wole by tak pozostało narazie.

Dzięki wielki + dla Ciebie.
Fifi209
Cytat(M05 @ 20.03.2013, 22:15:35 ) *
Po wywaleniu spacji działa, nie wywaliłem mysql_real_escape_string wole by tak pozostało narazie.

Ale dobrze gada! Wywal to! Bo jeszcze się tak nauczysz smile.gif Skoro masz hash, to nie ważne co użyszkodnik tam wpisze, czyż nie? smile.gif
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.