axys
12.08.2004, 01:55:45
Witam,
Przeszukałem grupę, ale nie znalazłem podobnego problemu. Pewnie rozwiązanie jest banalne, więc piszę na grupę dla początkująch...
Problem jest taki:
Mam funkcję do porównania 2 zmiennych tekstowych ($zm1 i $zm2), gdzie jedna zmienna jest przekazana do fukcji ($zm1), a drugą funkcja zciąga sobie z bazy danych ($zm2).
Gdy teraz chcę porównać obie zmienne np. if ($zm1 == $zm2) echo "OK" - to wynik wcale nie jest "OK" :) Pomimo, iż gdy zrobię:
echo $zm1,
echo $zm2 - na ekranie widzę dokładnie te same ciągi (sprawdzałem - nie ma żadnych spacji przed ani po).
Zrobiłem test i porównałem 2 zmienne o takich samych wartościach wprowadzane do funkcji np. (function loguj($zm11, $zm22)) - wynik porównania $zm11 i $zm22 działa prawidłowo. Podobnie, gdy porónuję 2 zmienne zawierające takie same wartości pobrane z bazy danych...
Najlepsze jest to, że skrypt ten działa na wszysktich serwerach z jakimi do tej pory miałem do czyniena poza tym jednym, jedynym... który pewnie jest jakoś niestandardowo skonfigurowany... Czy ktoś wie o co chodzi?
pozdr.
axys
może znaki końca lini ? i dlatego te zmienne nie są równe
axys
12.08.2004, 15:21:19
Ha...
Coś się tam faktycznie przyczepiło.. tylko dlaczego?
Porównałem strlen obu zmiennych i ta z bazy ma o 1 znak więcej (chociaż nie widać tego znaku przy echo)...
Do wrzucenia danych do bazy użyłem programu SQLyog i to wyraźnie on dodał coś na końcu każdej zmiennej. Napisałem teraz program php wrzucający te zmeinne do bazy - i jest ok....
axys
hwao
12.08.2004, 16:56:02
Wrzuc obie zmiene tak
<?php
if( trim( $zmienna1 ) == trim( $zmienna2 ) ) //...
?>
trim" title="Zobacz w manualu PHP" target="_manual()
broU
12.08.2004, 21:41:53
nie jestem pewien , ale aby zobaczyć czy zmienne sa takie same mozna ja chyba potraktowac md5 i porownac ? jesli nie mam racji to prosze mnie uswiadomic :]
PS: oczywiscie mozna trafic na dwa rozne wyrazy ktore po md5 zwracaja identyczny hash - ale pominmy ten fakt ;]
axys
12.08.2004, 22:54:46
Dzięki za rady.
A co to jest md5? (nie słyszałem nigdy o czymś takim...)
axys
axys: wpisz na stronie php.net frazę "md5" na forum była wiele razy wykorzystywana ta funkcja... służy przeważnie do kodowania hasła
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.