Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie na txt + md5()
Forum PHP.pl > Forum > PHP
jarmiar
Witam,

Mam problem z porównaniem wprowadzonego hasła z hasłem zakodowanym w md5() i zapisanym w pliku tekstowym

daję kod

  1. <?
  2. //start sesji
  3. $login = $_POST['login'];
  4. $haslo = $_POST['haslo'];
  5. if(!empty($login) && !empty($haslo))
  6.  {
  7.  $plik_bazy = "logowanie/users.dat";
  8.  $baza_o = file($plik_bazy);
  9.  $row = explode(',', $baza_o[0]);
  10.  $haslo_hasz = md5($haslo);
  11.  if($login == $row[0] && $haslo_hasz == $row[1])
  12.  {
  13.  //zarejestrowanie sesji
  14.  session_register("uzytkownik");
  15.  header('Location: panel.php');
  16.  }
  17.  else
  18.  {
  19.  ?>
  20.  <body onload="alert('Podano nieprawidłowe dane!')">
  21.  <?
  22.  }
  23.  }
  24.  else
  25.  {
  26.  include "logowanie/login.frm";
  27.  }
  28. ?>



<?
ob_end_flush();
?>

plik users.dat ma taką zawartośc:
Kod
admin,c79bdf421714f5087fc34b7c538b6807


i przy wpisaniu hasła pokazuje się alert.

natomiast kiedy wpiszę do pliku hasło bez kodowania md5() to porównuje poprawnie.
UDAT
Czy naprawde trudno było zauważyć, że file" title="Zobacz w manualu PHP" target="_manual zwrócił ci stringa z PHP_EOL na końcu?questionmark.gif
Czy trudno było sprawdzić co się porównywało?
Zamiast:
  1. <?php
  2. if($login == $row[0] && $haslo_hasz == $row[1])
  3. ?>

daj
  1. <?php
  2. if($login == $row[0] && $haslo_hasz == trim($row[1]))
  3. ?>
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.