Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: błędy przy porównaniu stringów?
Forum PHP.pl > Forum > PHP
flatplanet
witam,

Przenioslem swoje skrypty na inny serwer (inny sys i inna wersja php5)
i oto poniższy skrypt daje takie rezultaty:

Kod
nierowne
SUMA MD5: 0fd05e3eb65a64b0f761ceaf0b2b811a - 0fd05e3eb65a64b0f761ceaf0b2b811a - rowne


SKRYPT:
Kod
<?php
   $a='0x1f68ff1b98f5510000e00000000000001f68ff1b98f5590000e00000000000000068ff1986
c72300080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffff0f18ff1b98f54e0000d0000000000000ffffffffffff
fffffffffffffffffff1f68ff1b98f5520000e00000000000001f68ff1b98f5580000e0000000000
00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffff0f18ff1b98f54d0000d000000000000
ffffffffffffffffffffffffffffffff1f68ff1b98f5530000e00000000000001f68ff1b98f55700
0e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0
58ff1986f1a5200080000000000000ffffffffffffffffffffffffffffffff0f18ff1b98f54c0000
0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5540000e00000000000001f6
ff1b98f5560000e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f18f
1b98f54b0000d0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5550000e000
0000000001f68ff1b98f55a0000e0000000000000fffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffff0f18ff1b98f54a0000d0000000000000fffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffff0068ff19867c73100080000000000000ffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f10ff1b98f
390000d00000000000000f18ff1b98f5490000d0000000000000ffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
f0f10ff1b98f53a0000d00000000000000f18ff1b98f5480000d0000000000000fffffffffffffff
ffffffffffffffff0058ff1986f1a6200080000000000000ffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffff0f10ff1b98f53b0000d00000000000000f18ff1b98f5470000d00000000000001b
0ff11ba789b7f00d0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffff0f10ff1b98f53c0000d00000000000000f18ff1b98f5460000d00
00000000001a00ff11ba789a7f00d0000000000000ffffffffffffffffffffffffffffffff0058ff
986f1a7200080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffff0f10ff1b98f53d0000d00000000000000f18ff1b
8f5450000d00000000000001800ff11ba789e7f00d0000000000000fffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f08ff1b98
5380000d00000000000000f08ff1b98f52f0000d00000000000000f10ff1b98f53e0000d00000000
00000f18ff1b98f5440000d00000000000001500ff11ba789f7f00d0000000000000ffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff0f08ff1b98f5370000d00000000000000f08ff1b98f5300000d00000000000000f10ff1b98f53f
000d00000000000000f18ff1b98f5430000d00000000000001600ff11ba78a07f00d000000000000
ffffffffffffffffffffffffffffffff0058ff1986f1a8200080000000000000ffffffffffffffff
fffffffffffffff0f08ff1b98f5360000d00000000000000f08ff1b98f5310000d00000000000000
10ff1b98f5400000d000000000000006843b11ba7a58110010000000000000ffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffff0f08ff1b98f5350000d00000000000000f08ff1b98f5320000d0
000000000000f10ff1b98f5410000d0000000000000fffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffff0f08ff1b98f5340000d00000000000000f08ff1
98f5330000d00000000000000f10ff1b98f5420000d0000000000000ffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff';
   $b='0x1f68ff1b98f5510000e00000000000001f68ff1b98f5590000e00000000000000068ff1986
c72300080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffff0f18ff1b98f54e0000d0000000000000ffffffffffff
fffffffffffffffffff1f68ff1b98f5520000e00000000000001f68ff1b98f5580000e0000000000
00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffff0f18ff1b98f54d0000d000000000000
ffffffffffffffffffffffffffffffff1f68ff1b98f5530000e00000000000001f68ff1b98f55700
0e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0
58ff1986f1a5200080000000000000ffffffffffffffffffffffffffffffff0f18ff1b98f54c0000
0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5540000e00000000000001f6
ff1b98f5560000e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f18f
1b98f54b0000d0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5550000e000
0000000001f68ff1b98f55a0000e0000000000000fffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffff0f18ff1b98f54a0000d0000000000000fffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffff0068ff19867c73100080000000000000ffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f10ff1b98f
390000d00000000000000f18ff1b98f5490000d0000000000000ffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
f0f10ff1b98f53a0000d00000000000000f18ff1b98f5480000d0000000000000fffffffffffffff
ffffffffffffffff0058ff1986f1a6200080000000000000ffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffff0f10ff1b98f53b0000d00000000000000f18ff1b98f5470000d00000000000001b
0ff11ba789b7f00d0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffff0f10ff1b98f53c0000d00000000000000f18ff1b98f5460000d00
00000000001a00ff11ba789a7f00d0000000000000ffffffffffffffffffffffffffffffff0058ff
986f1a7200080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffff0f10ff1b98f53d0000d00000000000000f18ff1b
8f5450000d00000000000001800ff11ba789e7f00d0000000000000fffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f08ff1b98
5380000d00000000000000f08ff1b98f52f0000d00000000000000f10ff1b98f53e0000d00000000
00000f18ff1b98f5440000d00000000000001500ff11ba789f7f00d0000000000000ffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff0f08ff1b98f5370000d00000000000000f08ff1b98f5300000d00000000000000f10ff1b98f53f
000d00000000000000f18ff1b98f5430000d00000000000001600ff11ba78a07f00d000000000000
ffffffffffffffffffffffffffffffff0058ff1986f1a8200080000000000000ffffffffffffffff
fffffffffffffff0f08ff1b98f5360000d00000000000000f08ff1b98f5310000d00000000000000
10ff1b98f5400000d000000000000006843b11ba7a58110010000000000000ffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffff0f08ff1b98f5350000d00000000000000f08ff1b98f5320000d0
000000000000f10ff1b98f5410000d0000000000000fffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffff0f08ff1b98f5340000d00000000000000f08ff1
98f5330000d00000000000000f10ff1b98f5420000d0000000000000ffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff';
   if ($a==$b) { echo "rowne"; }  else echo "nierowne";
   $md5a=md5($a);
   $md5b=md5($b);
   echo "
SUMA MD5: {$md5a} - {$md5b} - ";
   if ($md5a==$md5b) { echo "rowne"; }  else echo "nierowne";      
?>


zna ktos odpowiedź na pytanie dlaczego zemienna $a i $b są różne?

pozdrawiam
damian
Fifi209
Spróbuj dać może krótszy ciąg (bo na oko nie powiem czy są różne haha.gif), bo hash'e niezależnie od wersji php dla danego ciągu zawsze są takie same.
flatplanet
dziala z przycietym stringiem.. max 258 znakow:
Kod
$a='0x1f68ff1b98f5510000e00000000000001f68ff1b98f5590000e00000000000000068ff1986
c72300080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffff0f18ff1b98f54e0000d0000000000000ffffffffffff
fffffffffffffffffff';


ale najlepsze jest to ze zmieniając zmienne na inny ciąg np:
Kod
$a='Lorem ipsum dolor sit amet consectetuer sollicitudin libero auctor tincidunt Nulla. Et lobortis orci egestas eleifend Nunc gravida parturient et hendrerit semper. Cum lacus Cum vestibulum augue dictumst quam augue tellus Maecenas vel. Massa libero tincidunt Donec elit Aliquam sit at laoreet Proin justo. Lacus et In Nunc in id sociis id ante parturient eu. Parturient et nulla Nam orci pretium nibh Nulla convallis Vivamus dolor. Libero tellus id laoreet tincidunt nulla sem nisl In nec Morbi. In amet nunc leo in id nonummy sem amet elit Quisque. Auctor mauris feugiat vel id ac ut odio scelerisque porta sollicitudin. Porta quam feugiat Vestibulum leo pretium Sed id sem pede lorem. At In sed ullamcorper malesuada quis Nullam tellus est pellentesque condimentum. Risus Curabitur aliquam eu Pellentesque platea Curabitur Integer a Phasellus Nulla. Vitae netus amet semper Quisque libero cursus sapien Maecenas volutpat sem. Consectetuer tristique tempor nascetur tortor Vestibulum ligula morbi tortor justo interdum. Molestie elit non velit ac magna cursus accumsan consequat Nullam molestie. Sagittis tincidunt consectetuer Vestibulum odio eros pellentesque urna interdum id dui. Consequat eleifend eleifend sapien Pellentesque nulla tristique fermentum et pellentesque Aenean. Eu Mauris condimentum commodo leo vel ultrices semper vitae eleifend turpis. Vel Aenean Sed aliquet Aenean consequat Integer condimentum nec Proin metus. Iaculis Integer nibh elit adipiscing nec convallis Curabitur neque id montes. Phasellus Aenean Curabitur ultrices mi mi eu tellus ullamcorper elit In. Sociis Suspendisse leo elit nulla cursus nec libero Fusce diam suscipit. Suspendisse vel pretium ante vitae adipiscing libero justo ac Vestibulum consectetuer. Interdum suscipit quis malesuada augue interdum pretium amet dapibus fringilla Suspendisse. Eget ac et elit Morbi laoreet mus augue dolor In vitae. Non ipsum lacus In elit senectus consequat lobortis turpis Aliquam pretium. Mauris pretium pede enim Mauris scelerisque odio dictum malesuada Phasellus pellentesque. Et leo Sed molestie Curabitur feugiat dui semper ridiculus Ut Nulla. Tempus egestas tellus Curabitur at elit Maecenas quis In sapien Duis. Quis Suspendisse mauris velit adipiscing penatibus id odio elit nec In. Ligula Nulla Vestibulum ligula Vestibulum dolor nibh nunc Suspendisse id est. Pellentesque urna sagittis nibh malesuada Vestibulum Praesent Pellentesque Praesent Ut nulla. Vitae semper Vestibulum orci felis convallis augue tellus dolor justo pellentesque. Justo sapien nulla odio lobortis dictum nunc fringilla hac lorem at. Wisi augue quis justo Aenean Nam vitae consequat sit at neque. Est Vestibulum mi lorem a nec semper fringilla laoreet convallis quis. Suspendisse euismod iaculis consectetuer Phasellus nulla vel arcu Donec laoreet neque. Eros eget quis molestie neque Pellentesque Nam feugiat semper pede nulla. Parturient eu Curabitur id habitant velit habitasse condimentum tempus consequat risus. Libero ultrices dolor volutpat congue eros leo senectus tincidunt Nulla Aenean. Quisque a Vestibulum magnis Morbi elit vestibulum Aliquam sed ligula convallis. A tincidunt facilisis Curabitur quis amet justo laoreet ac convallis enim. Diam porta platea In Morbi scelerisque a Lorem Sed ac mi. Elit auctor eu orci dolor est vestibulum Phasellus non enim velit. Cursus est ante orci mauris euismod amet platea a ornare urna. Habitant ipsum Aenean convallis lobortis at senectus ullamcorper euismod Lorem congue. Sed amet tellus augue vel orci Nullam sem massa condimentum pretium. Vestibulum accumsan ridiculus urna molestie nulla at mauris volutpat In Sed. Tempus morbi enim at pellentesque vitae natoque dis elit nibh iaculis. Donec nulla vitae quis nunc elit ultrices ipsum mattis elit Ut. Et interdum nibh sagittis tellus mauris ipsum ut nunc quis at. Orci velit Vestibulum elit eu Pellentesque sapien id a enim quis. Tempus Ut lacinia quis ipsum fames rhoncus justo ac parturient iaculis. Scelerisque convallis Donec Quisque ante wisi nunc montes ac natoque a. Penatibus ligula Morbi tellus massa felis id Sed laoreet ornare ullamcorper.';


4120 znaków to problem nie wystepuje. Ciagi sa poprawnie porównywane..
nie pomaga rowniez dodanie if (strval($a)==strval($b)) ...

moje phpinfo: sns.com.pl/info.php
dr_bonzo
U mnie ten pierwszy kod dziala poprawnie, stringi i md5 pokazuje ze sa rowne, i sa rowne.

Odpal: http://paste-it.net/public/yeccb3f/

Pokaze ci gdzie sie te stringi roznia (o ile), moze zle cos wpisales, na forum wrzuciles inny kod itp.
flatplanet
kod jest dobry..wlasnie dlatego licze md5 ze zmiennych zeby miec pewnosc ze ciągi są takie same
wydaje mi sie ze to wina php ktory jakos inaczej traktuje tego stringa a'la hex
instalacja to swiezo zainstalowany debian5 + DirectAdmin

ponizszy skrypt odpalony pod adresem:
http://x-world.pl/test.php

Kod
$a='0x1f68ff1b98f5510000e00000000000001f68ff1b98f5590000e00000000000000068ff1986
c72300080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffff0f18ff1b98f54e0000d0000000000000ffffffffffff
fffffffffffffffffff1f68ff1b98f5520000e00000000000001f68ff1b98f5580000e0000000000
00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffff0f18ff1b98f54d0000d000000000000
ffffffffffffffffffffffffffffffff1f68ff1b98f5530000e00000000000001f68ff1b98f55700
0e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0
58ff1986f1a5200080000000000000ffffffffffffffffffffffffffffffff0f18ff1b98f54c0000
0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5540000e00000000000001f6
ff1b98f5560000e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f18f
1b98f54b0000d0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5550000e000
0000000001f68ff1b98f55a0000e0000000000000fffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffff0f18ff1b98f54a0000d0000000000000fffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffff0068ff19867c73100080000000000000ffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f10ff1b98f
390000d00000000000000f18ff1b98f5490000d0000000000000ffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
f0f10ff1b98f53a0000d00000000000000f18ff1b98f5480000d0000000000000fffffffffffffff
ffffffffffffffff0058ff1986f1a6200080000000000000ffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffff0f10ff1b98f53b0000d00000000000000f18ff1b98f5470000d00000000000001b
0ff11ba789b7f00d0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffff0f10ff1b98f53c0000d00000000000000f18ff1b98f5460000d00
00000000001a00ff11ba789a7f00d0000000000000ffffffffffffffffffffffffffffffff0058ff
986f1a7200080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffff0f10ff1b98f53d0000d00000000000000f18ff1b
8f5450000d00000000000001800ff11ba789e7f00d0000000000000fffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f08ff1b98
5380000d00000000000000f08ff1b98f52f0000d00000000000000f10ff1b98f53e0000d00000000
00000f18ff1b98f5440000d00000000000001500ff11ba789f7f00d0000000000000ffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff0f08ff1b98f5370000d00000000000000f08ff1b98f5300000d00000000000000f10ff1b98f53f
000d00000000000000f18ff1b98f5430000d00000000000001600ff11ba78a07f00d000000000000
ffffffffffffffffffffffffffffffff0058ff1986f1a8200080000000000000ffffffffffffffff
fffffffffffffff0f08ff1b98f5360000d00000000000000f08ff1b98f5310000d00000000000000
10ff1b98f5400000d000000000000006843b11ba7a58110010000000000000ffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffff0f08ff1b98f5350000d00000000000000f08ff1b98f5320000d0
000000000000f10ff1b98f5410000d0000000000000fffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffff0f08ff1b98f5340000d00000000000000f08ff1
98f5330000d00000000000000f10ff1b98f5420000d0000000000000ffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff';
  $b='0x1f68ff1b98f5510000e00000000000001f68ff1b98f5590000e00000000000000068ff1986
c72300080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffff0f18ff1b98f54e0000d0000000000000ffffffffffff
fffffffffffffffffff1f68ff1b98f5520000e00000000000001f68ff1b98f5580000e0000000000
00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffff0f18ff1b98f54d0000d000000000000
ffffffffffffffffffffffffffffffff1f68ff1b98f5530000e00000000000001f68ff1b98f55700
0e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0
58ff1986f1a5200080000000000000ffffffffffffffffffffffffffffffff0f18ff1b98f54c0000
0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5540000e00000000000001f6
ff1b98f5560000e0000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f18f
1b98f54b0000d0000000000000ffffffffffffffffffffffffffffffff1f68ff1b98f5550000e000
0000000001f68ff1b98f55a0000e0000000000000fffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffff0f18ff1b98f54a0000d0000000000000fffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffff0068ff19867c73100080000000000000ffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f10ff1b98f
390000d00000000000000f18ff1b98f5490000d0000000000000ffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
f0f10ff1b98f53a0000d00000000000000f18ff1b98f5480000d0000000000000fffffffffffffff
ffffffffffffffff0058ff1986f1a6200080000000000000ffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffff0f10ff1b98f53b0000d00000000000000f18ff1b98f5470000d00000000000001b
0ff11ba789b7f00d0000000000000fffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffff0f10ff1b98f53c0000d00000000000000f18ff1b98f5460000d00
00000000001a00ff11ba789a7f00d0000000000000ffffffffffffffffffffffffffffffff0058ff
986f1a7200080000000000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffff0f10ff1b98f53d0000d00000000000000f18ff1b
8f5450000d00000000000001800ff11ba789e7f00d0000000000000fffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0f08ff1b98
5380000d00000000000000f08ff1b98f52f0000d00000000000000f10ff1b98f53e0000d00000000
00000f18ff1b98f5440000d00000000000001500ff11ba789f7f00d0000000000000ffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff0f08ff1b98f5370000d00000000000000f08ff1b98f5300000d00000000000000f10ff1b98f53f
000d00000000000000f18ff1b98f5430000d00000000000001600ff11ba78a07f00d000000000000
ffffffffffffffffffffffffffffffff0058ff1986f1a8200080000000000000ffffffffffffffff
fffffffffffffff0f08ff1b98f5360000d00000000000000f08ff1b98f5310000d00000000000000
10ff1b98f5400000d000000000000006843b11ba7a58110010000000000000ffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffff0f08ff1b98f5350000d00000000000000f08ff1b98f5320000d0
000000000000f10ff1b98f5410000d0000000000000fffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffffff0f08ff1b98f5340000d00000000000000f08ff1
98f5330000d00000000000000f10ff1b98f5420000d0000000000000ffffffffffffffffffffffff
fffffffffffffffffffffffffffffffffffffff';
   if ($a==$b) { echo "rowne"; }  else echo "nierowne";

   $md5a=md5($a);

   $md5b=md5($b);

   echo "

SUMA MD5: {$md5a} - {$md5b} - ";

   if ($md5a==$md5b) { echo "rowne"; }  else echo "nierowne";

print( "<hr />" );
$len = strlen($a);
$sameCharsCount = 0;
for ( $i = 0; $i < $len; $i++ )
{
    $ca = $a{$i};
    $cb = $b{$i};

    if ( $ca == $cb )
    {
        $sameCharsCount++;
    }
    else
    {
        printf("Roznica na pozycji %d ca = '%s' cb = '%s'<br />", $i, $ca, $cb );
    }
}
erix
PHP kompilowałeś, czy z paczek?
flatplanet
czysty custombuild... wszystko zrobil DirectAdmin

dolozylem tylko obsługe mssql, dwie dodatko we .so
kamil_biela
Może chodzi o różnicę z znakach nowej linii? \r\n a \n?
flatplanet
nie wyszla by wtedy identyczna suma md5 ze zmiennych wiec to nie to
kamil_biela
to może porównanie ===
albo http://php.net/strcmp ?
erix
Cytat
czysty custombuild... wszystko zrobil DirectAdmin

Spróbuj skompilować własną wersję podmieniając potem binarki.
flatplanet
zainstalowalem zupelnie czysty debian5 i apache2 i php5 i sytuacja sie powtarza
to musi być błąd PHP!!

jesli ktos moze sprawdzic czy posiada wersję: PHP Version 5.2.6-1
tylko na niej dzieją się takie cuda..

przetestowalem chyba 10 roznych serwerów.. tylko z ta wersją są problemy

jesli ktos bedzie chcial (mial checi) potestowac to prosze o info na PW a podam wejscie do testowego VPSa

info:
http://188.40.37.120/
kamil_biela
pogrzebałem, moje wnioski:

porównanie === daje true
porównanie strcmp == 0 więc też ok

wygląda na to że te stringi są rzutowane na liczby przed porównaniem.

http://us.php.net/manual/en/language.types....string.casting rozdział "String conversion to numbers"
http://www.manpagez.com/man/3/strtod/
Cytat
These conversion functions convert the initial portion of the string
pointed to by nptr to double, float, and long double representation,
respectively.

[ciach]
a hexadecimal significand, consisting of a ``0X'' or ``0x'' followed
by a sequence of hexadecimal digits (optionally containing a decimal-
point character).

In both cases, the significand may be optionally followed by an exponent.
An exponent consists of an ``E'' or ``e'' (for decimal constants) or a
``P'' or ``p'' (for hexadecimal constants), followed by an optional plus
or minus sign, followed by a sequence of decimal digits. For decimal
constants, the exponent indicates the power of 10 by which the signifi-
cand should be scaled. For hexadecimal constants, the scaling is instead
done by powers of 2.


Po zrzutowaniu te liczby są za duże.
Jak zrobiłem echo 1 + $a to zrzutowało mi na INF.
INF jest różne INF stąd ten niby błąd.

It's not a bug, it's a feature winksmiley.jpg
flatplanet
tak mozliwe..ale:

1. strval() w tym wypadku nic nie daje... dalej zwracane ciągi nie są równe
2. pytanie: dlaczego w innych wersjach da się te ciągi porównać a w tej nie?
kamil_biela
Ad1.
no tak, ale po strval, dalej masz stringi przed porównaniem. Podczas porównywania są rzutowane. Zresztą sprawdź sam i na początek tych stringów dodaj jakąś literę. Nie występuje wtedy rzutowanie na liczbę i stringi się "poprawnie" porównują.

Ad2.
Też chciałbym wiedzieć.
erix
Cytat
2. pytanie: dlaczego w innych wersjach da się te ciągi porównać a w tej nie?

A po aktualizacji kompilatora/paczek -dev jest to samo?

AFAIK, funkcje porównania bazują na systemowych, które są zawarte w bibliotekach nagłówkowych kompilatora.
flatplanet
Cytat
AFAIK, funkcje porównania bazują na systemowych, które są zawarte w bibliotekach nagłówkowych kompilatora.


racja bo przekompilowałem juz kilka wersji php i ciagle jest to samo
problem dotyczy debiana5

byc moze trzeba czekac na upgrade;)
erix
Nic to nie da; z tego, co pamiętam, to floaty "sprawdzało się" czymś takim:
  1. <?php
  2. $float = 0.01;
  3.  
  4. if($float<=0.01 AND $float >=0.01){
  5.    //"tru"
  6. }
  7. ?>
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.