PHP - porovnání stringů

sds

PHP - porovnání stringů
« kdy: 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


sds

Re:PHP - porovnání stringů
« Odpověď #1 kdy: 30. 06. 2013, 14:56:23 »
problém vyřešen, soubor jsem vytvořil znova a už to funguje. Asi tam byly nějaké skryté znaky

Jim

Re:PHP - porovnání stringů
« Odpověď #2 kdy: 30. 06. 2013, 15:59:45 »
Rozhodně bych to řešil databází...

Re:PHP - porovnání stringů
« Odpověď #3 kdy: 30. 06. 2013, 22:21:11 »
mb_strlen vs strlen jako uplne zakladni diagnostika :)
Děkuji za možnost editace příspěvku.

Re:PHP - porovnání stringů
« Odpověď #4 kdy: 30. 06. 2013, 23:52:44 »
Citace
$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).