Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Błąd gdzieś w tym, skrypcie, Logowanie z zabezpieczeniami (gdzie jest błąd?)
M05
post 20.03.2013, 19:42:28
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.03.2013

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


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ł?
Go to the top of the page
+Quote Post
Michael2318
post 20.03.2013, 20:05:54
Post #2





Grupa: Zarejestrowani
Postów: 651
Pomógł: 116
Dołączył: 3.06.2012
Skąd: Lędziny

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


  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."'
Go to the top of the page
+Quote Post
M05
post 20.03.2013, 21:15:35
Post #3





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 20.03.2013

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


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.

Ten post edytował M05 20.03.2013, 21:16:01
Go to the top of the page
+Quote Post
Fifi209
post 21.03.2013, 03:25:15
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


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


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post

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 Wersja Lo-Fi Aktualny czas: 23.04.2024 - 08:12