Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [SQL] [PHP] problem z logowaniem i md5
szpakoo
post 1.09.2007, 11:33:45
Post #1





Grupa: Zarejestrowani
Postów: 122
Pomógł: 16
Dołączył: 19.04.2007

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


znalazłem na tym forum pewien skrypcik i sobie go zapożyczyłem smile.gif


plik index.html
  1. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  2. <title>Logowanie</title>
  3. </head>
  4.  
  5. <h2>Proszę podać nazwę użytkownika i hasło:</h2>
  6. <form name = "formularz" action = "spr.php" method = "POST">
  7.  
  8. <TABLE border="1"><TR>
  9. <TD bordercolor="#FFFFFF">Użytkownik:</TD>
  10. <TD bordercolor="#F
  11. FFFFF"><INPUT TYPE = "text" NAME = "user"></TD>
  12. </TR>
  13.  
  14. <TR>
  15. <TD bordercolor="#FFFFFF">Hasło:</TD>
  16. <TD bordercolor="#FFFFFF"><INPUT TYPE = "password" NAME = "haslo"></TD>
  17. </TR>
  18.  
  19. <TR>
  20. <TD colspan="2" align="center" bordercolor="#FFFFFF">
  21. <INPUT TYPE = "submit" VALUE = "Zaloguj">
  22. </TD>
  23. </TR>
  24. <a href="index/dodaj.html">dopisz sie do nas</a>
  25. </body>
  26. </html>



plik spr.php

  1. <?php
  2. $pass = $_POST["haslo"];
  3. $user = $_POST["user"];
  4.  
  5. function checkPass($pass, $user)
  6. {
  7.  $link = mysql_connect("localhost", "root", "krasnal");
  8.  $flag = mysql_select_db("pilkanozna");
  9.  if(!$link || !$flag){
  10.  echo("Error!");
  11.  return false;
  12. }
  13. $name = addslashes($name);
  14. $pass = addslashes($pass);
  15.  
  16. $query = "SELECT PASS FROM USERS WHERE name = '".$user."' AND pass = '".md5($pass)."' " ;
  17. $result = mysql_query($query);
  18.  
  19.  
  20. if(!$result){
  21.  echo("Problem z baza danych! Zapytanie zostalo odrzucone!");
  22.  mysql_close($link);
  23.  return false;
  24.  }
  25.  
  26.  
  27.  $row = mysql_fetch_row($result);
  28.  if(!$row){
  29. mysql_close($link);
  30. return false;
  31. }
  32.  
  33.  if($row[0] != $pass){
  34. mysql_close($link);
  35. return false;
  36. }
  37.  
  38.  else {mysql_close($link); return true;}
  39.  }
  40.  
  41. if(!checkPass($pass, $user)){
  42.  echo("<HTML><BODY><CENTER>");
  43.  echo("<H2>Niepoprawne dane!</H2>");
  44.  echo("</CENTER></BODY></HTML>");
  45.  }
  46.  
  47.  else{
  48. include('index1.php');
  49. }
  50. ?>


no i wszystko jest w porządku jeśli nie ma kodowania md5, wtedy skrypt działa jak powinien a z kodowaniem md5 nie działa. stworzyłem następny prosty skrypcik do rejestracji

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  5. </head>
  6. <body>
  7. <?php
  8. // utworzenie krótkich anzw zmiennych
  9. $name=$_POST['name'];
  10. $pass=$_POST['pass'];
  11.  
  12. if (!$name || !$pass )
  13. {
  14.  echo 'nie podano wszystkiego';
  15. }
  16.  
  17. {
  18. $name = addslashes($name);
  19. $pass = addslashes($pass);
  20. }
  21.  
  22. $mysql_server = "localhost";
  23. $mysql_admin = "root";
  24. $mysql_pass = "krasnal";
  25. $mysql_db = "pilkanozna";
  26. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  27. or die('Brak połaczenia z serwerem MySQL.');
  28.  @mysql_select_db($mysql_db)
  29. or die('Bład wyboru bazy danych.');
  30.  
  31.  
  32. $zapytanie = "insert into users values ('".$name."', '".md5($pass)."')";
  33. $wynik = mysql_query ($zapytanie) or die ("Zapytanie zakończone niepowodzeniem");
  34. if ($wynik)
  35. echo $db->affected_rows.' Zostałeś zapisany do naszej bazy danych.';
  36. ?>
  37. </body>
  38. </html>


teraz spokojnie przy dodawaniu usera do bazy od razu hasło w bazie jest zapisane w 32-znakowym formacie. przy próbie logowania wyskakujenapis: Niepoprawne dane z tej częsci skryptu.


if(!checkPass($pass, $user)){
echo("<HTML><BODY><CENTER>");
echo("<H2>Niepoprawne dane!</H2>");
echo("</CENTER></BODY></HTML>");
}

else{
include('index1.php');
}
pogubiłem się... pomocy


--------------------
Go to the top of the page
+Quote Post

Posty w temacie


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: 14.08.2025 - 00:40