Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] rozbierznosci prz kodowaniu sha1
Forum PHP.pl > Forum > Przedszkole
-kalis-
Witam

Dodaje do bazy danych za pomoca :

$login=$ag_login;
$pass=trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($ag_pass2))));
$pass=sha1($pass);
$zapytanie=mysql_query("INSERT INTO users (u_login,u_pass,u_name,u_lic) VALUES ('$login','$pass','$ag_name','$ag_lic')");




a jak sie loguje na stronie :
#--pobranie danych dotyczących logowania
$login = $_POST['u'];
$pass = $_POST['p'];
echo $login;
echo $pass;
#--sprawdzenie czy wsyzstkie dane są wpisane
if(empty($login) || empty($pass))
{
$txt.="<tr><td>";
$txt.=__('blad_brakdanych');
$txt.="</td></tr>";
}
else
{
#--kodowanie hasła
//$login = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($login))));
$pass = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($pass))));
$pass = sha1($pass);

require("!konfiguracja/bd.php");
$logowanie=mysql_query("SELECT u_id FROM users WHERE u_login='$login' AND u_pass='$pass'");
if(mysql_num_rows($logowanie)==0)
{
$txt.="<tr><td>";
$txt.=__('login_blad2');
$txt.=$login;
$txt.=$pass;
$txt.="</td></tr>";
}
else
{
$row = mysql_fetch_array($logowanie);
$_SESSION['login'] = "zalogowany";
$_SESSION['id'] = $row['u_id'];
$_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
header("Location:administrator.php");

//test ang
// $_SESSION['site_lang'] ='en';
}

}


i jak podam haslo do jest inne po zakodowaniu .... co jest tego powodem
Fifi209
Powinno działać, w jakim polu (typ) trzymasz hasło?

Poza tym odpuść sobie tych wszystkich operacji na haśle skoro i tak wysyłasz do bazy skrót smile.gif
-kalis-
pole ma varchar(64)

a co masz na mysli mowiac skrót?
Fifi209
Czytałeś definicje funkcji takich jak md5 czy sha1?

http://pl.wikipedia.org/wiki/MD5
-kalis-
czytalem ... to jaki ustaic typ dla pola password??
Fifi209
Sprawdź jak długi ciąg dostaniesz z funkcji sha1 lub md5 i użyj pola char o odpowiedniej długości
-kalis-
to chyba nie jest wina typu bo

przy tworzeniu usera haslo ma taka sama wartosc po zakodowaniu jak dodaje sie bazie

natomast przy logowaniu po zakodowaniu haslo jest calkiem inne.
Fifi209
Nie masz session_start może?

Wyświetl sobie te zmienne i porównaj.

A o typ pytałem, bo może jest zbyt krótkie pole i ucina?

i używaj tagów php.
-kalis-
cały kod :

  1. <?php
  2. ini_set('display_errors','0');
  3.  
  4. if (!isset($_SESSION['inicjuj']))
  5. {
  6. $_SESSION['inicjuj'] = true;
  7. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  8.  
  9. }
  10. if($_SESSION['ip'] != $_SERVER['REMOTE_ADDR'])
  11. {
  12. die();
  13. }
  14.  
  15.  
  16. require_once('langs/lang.class.php');
  17. ?>
  18. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  19. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  20. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  21. <head>
  22. <title></title>
  23. <meta http-equiv="content-type" content="text/html; charset=ISO-8859-2" />
  24. <link rel="stylesheet" type="text/css" href="style/style.css">
  25. <META NAME="Keywords" CONTENT="">
  26. </head>
  27.  
  28. <body leftmargin="0" topmargin="0">
  29. <?php
  30. $txt='';
  31. if ($_SESSION['login'] == "zalogowany")
  32. {
  33. header("Location:index.php");
  34. }
  35. else
  36. {
  37. $txt.="<FORM action=\"login.php\" method=\"POST\">";
  38. $txt.="<TABLE align=\"center\" bgcolor=\"#fffaaa\" border=\"0\" width=\"350px\" CELLPADDING=\"2\" CELLSPACING=\"2\">";
  39. $txt.="<TR>
  40. <TD>
  41. <h2>". __('login_nazwa')."</h2>
  42. ".__('login_login')."<br />
  43. <input type=\"textbox\" name=\"u\" size=\"15\">
  44. </TD>
  45. </TR>
  46. <TR>
  47. <TD>".__('login_pass')."<br />
  48. <input type=\"password\" name=\"p\" size=\"15\">
  49. <input type=\"hidden\" name=\"log\">
  50. </TD>
  51. </TR>
  52. <TR>
  53. <TD>
  54. <br />
  55. <input class=\"wyslij_formularz\" align=\"center\" type=\"submit\" name=\"submit\" value=\"".__('login_zaloguj')."\">
  56. </TD>
  57. </form>";
  58.  
  59. if (isset($_POST['log']))
  60. {
  61. #--pobranie danych dotyczących logowania
  62. $login = $_POST['u'];
  63. $pass_post = $_POST['p'];
  64. echo $login;
  65. echo $pass_post;
  66. #--sprawdzenie czy wsyzstkie dane są wpisane
  67. if(empty($login) || empty($pass))
  68. {
  69. $txt.="<tr><td>";
  70. $txt.=__('blad_brakdanych');
  71. $txt.="</td></tr>";
  72. }
  73. else
  74. {
  75. #--kodowanie hasła
  76. //$login = trim(strip_tags(mysql_real_escape_string(HTMLSpecialChars($login))));
  77. echo $password;
  78. $pass = sha1($password);
  79.  
  80. require("!konfiguracja/bd.php");
  81. $logowanie=mysql_query("SELECT u_id FROM users WHERE u_login='$login' AND u_pass='$pass'");
  82. if(mysql_num_rows($logowanie)==0)
  83. {
  84. $txt.="<tr><td>";
  85. $txt.=__('login_blad2');
  86. $txt.=$login;
  87. $txt.=$pass;
  88. $txt.="</td></tr>";
  89. }
  90. else
  91. {
  92. echo "zalogowany";
  93. $row = mysql_fetch_array($logowanie);
  94. $_SESSION['login'] = "zalogowany";
  95. $_SESSION['id'] = $row['u_id'];
  96. $_SESSION['ip'] = $_SERVER['REMOTE_ADDR'];
  97. $_SESSION['site_lang'] ='pl';
  98. //header("Location:administrator.php");
  99.  
  100.  
  101. }
  102.  
  103. }
  104. }
  105. $txt.="</table>";
  106. echo $txt;
  107. }
  108. ?>


i z tego widze iż zmienna $past_post ma wartość z forularza ale już $password jest puste nie ma nic ... gdzie tu jest błąd
-kalis-
czy ktos ma pomysl o co tu moze chodzic questionmark.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.