Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: sds 30. 06. 2013, 14:35:49
-
Ahoj,
zkouším si PHP nějaké věci a narazil jsem na zvláštní problém. Mám následující kód, který porovnává data načtená ze souboru a data zadaná uživatelem:
<?php
$file = fopen("users.txt","r") or exit ("Soubor nenalezen");
$data = " ";
$data = fgets($file);
$kontrola = $_POST["name"] . " " . $_POST["passwd"];
if ($kontrola != $data)
{
echo "Kontrola: " . $kontrola . "
";
echo "Data: " . $data . "
";
}
else
{
echo "OK";
}
fclose($file);
?>
ačkoli se v obou proměnných ($data, $kontrola) nachází totožné řetězce, php říká, že totožné nejsou. Poradí někdo ?
Díky
-
problém vyřešen, soubor jsem vytvořil znova a už to funguje. Asi tam byly nějaké skryté znaky
-
Rozhodně bych to řešil databází...
-
mb_strlen vs strlen jako uplne zakladni diagnostika :)
-
$data = fgets($file);
Tady se to načte i s koncem řádku (pokud tam je) a pak by řetězce samozřejmě nesouhlasily.
Každopádně pokud to má sloužit k ověřování uživatelů, je to asi ten nejhorší způsob, jak to udělat (horší už je jen vypsat uživatele a hesla přímo do zdrojáku). správné řešení je databáze a zahashovaná! hesla (včetně soli).