Pogledajte određenu poruku
Staro 04. 11. 2009.   #16
bluesman
Goran Pilipović
Sir Write-a-Lot
 
Avatar bluesman
 
Datum učlanjenja: 18.05.2005
Lokacija: Beograd
Poruke: 5.450
Hvala: 288
1.247 "Hvala" u 446 poruka
bluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušatibluesman je osoba koju treba slušati
Pošaljite ICQ poruku za bluesman
Default

Citat:
Originalno napisao BluesRocker Pogledajte poruku
Ja sam iz radoznalosti probao da testiram i čini mi se da je potpuno isto koristio time() ili $_SERVER['REQUEST_TIME'].

PHP kôd:
echo $_SERVER['REQUEST_TIME'].'<br />';
usleep(300);
echo 
time().'<br />';
usleep(300);
echo 
time().'<br />'
Rezultat:
Kôd:
1257281771
1257281771
1257281771
Pa nije to dobar test Ne znam šta si hteo da pokažeš tim testom koji kasni 600 mikrosekundi

Evo da vidiš koja je razlika kada koristiš sleep:

PHP kôd:
<pre>
<?php
echo 'REQUEST_TIME = '$_SERVER['REQUEST_TIME'].'<br />';
echo 
'time()       = '.time().'<br />';
echo 
'sleep 1 second<br />';
sleep (1);
echo 
'REQUEST_TIME = '$_SERVER['REQUEST_TIME'].'<br />';
echo 
'time()       = '.time().'<br />';
echo 
'sleep 1 second<br />';
sleep (1);
echo 
'REQUEST_TIME = '$_SERVER['REQUEST_TIME'].'<br />';
echo 
'time()       = '.time().'<br />';
?>
</pre>
A rezultat izgleda ovako:

Kôd:
REQUEST_TIME = 1257296702
time()       = 1257296702
sleep 1 second
REQUEST_TIME = 1257296702
time()       = 1257296703
sleep 1 second
REQUEST_TIME = 1257296702
time()       = 1257296704
Očigledno je da je za svaki sleep vrednost $_SERVER['REQUEST_TIME'] konstantna dok se iz funkcije time() vraća različito.

I da pretopostavim da imaš recimo neki order processing i da se tvoj script izvršava 3-4 sekunde (konekcija na payment processor, slanje, process, response, parse... ) i ti treba da zabeležiš recimo timestam kada je izvršena kupovina, ove 2 vrednosti se razlikuju za tih 3-4 sekunde.

E sad, ti ćeš reći da je to cinculiranje, možda i jeste u najvećem broju slučajeva ali recimo 2checkout kada šalje notification gradi security key baš preko timestampa, order id... i od toga radi md5.

Često ljudi prave hash-ove od timestamp-a, pa recimo šalješ activation link, na primer sačuvaš u bazu:

INSERT ... SET hash= md5(time())

i recimo upiše se md5(1257296702), pa onda pripremiš mail i pošalješ activation link:

activation?hash=md5(time())

pa ako je bila samo mala razlika (teoretski dovoljno i jedna mikrosekunda) između ova 2 timestampa koja si sačuvao u bazu i poslao na mail - poslaćeš mu pogrešan link: md5(1257296703) i neće uspeti da aktivira account.

E sad, ti vaši predlozi da se koristi global, ili da se definiše konstanta na početku scripta (a već imaš jednu konstantu $_SERVER['REQUEST_TIME']) su ... ono... 1000 ljudi - 1000 ćudi Ti kažeš "ma nema veze, u 99% slučajeva će sve biti ok", sorry ali to nije razmišljanje progamera

Opet, ne govorim ni o uštedi u brzini, verovatno je i brzina ista, sve zavisi i od toga šta radite. Ako pišete samo timestmap komentara na blogu onda je verovatno savršeno sve jedno da li je razlika 1, 2 ili 100 sekundi.
__________________
Goran Pilipović a.k.a. Ugly Fingers Bradley f.k.a. bluesman
I don't always know what I'm talking about but I know I'm right!
bluesman je offline   Odgovorite uz citat
"Hvala" bluesman za poruku: