Je v php nějaký zaručený způsob jak vygenerovat číslo tak, aby ho dva čtenáři neměli stejné?
Uvažoval jsem o date("U"), ale co když v jeden okamžik přijdou dva ? :-)
Díky
neco jako microtime ti vyhodi pidisekundy, to by bylo asi lepsi :)
date() není blby to pujde. cim mensi tam das tim to bude spolehlivejsi. jeste muzes prihodit treba IP adresu a mas to. to se ti dva stejny v jedne vterine treba nesejdou. zalezi na tom jakou mas navstevnost. jinak tusim existuje funkce rand() pro generovani nahodnych cisel.
<HTML>int rand ( [int min, int max])
If called without the optional min, max arguments rand() returns a pseudo-random integer between 0 and RAND_MAX.</HTML>
Našel jsem si ten rand na intervalu, ale moc sem to nepochopil.
Jak bych například vzal číslo mezi 1 a 9 a vypsal ho do proměnné $cislo.
Díky
neviem, ci je dory napad generovat nahodne cisla pre kazdeho navstevnika. to, ze sa im vygeneruju nahodne cisla este neznamena, ze tie cisla nemozu byt rovnake
Spendlik: $cislo = rand(MIN, MAX); //vygeneruje nahodne cislo medzi MIN a MAX
$cislo = rand(1,9); //generuje nahodne cislo od 1 po 9
No právě proto bych to rand číslo ještě připočetl k datu v sekundach. To už stejne být prakticky nemůže.
A co takhle ?
<?
...
session_start();
session_id();
echo $PHPSESSID;
... ... ...
?>
stip: No může, když se někdo přihlásí v tu samou sekundu jako je date + rand, tak budou dvě stejné čísla :-). Ale to neřeš, udělám si 2. Jedno bude date a druhé bude rand a to už nemůžou být dvě dvojice stejné :-)
Petr Bláha: Co je to session_id() - nemůžu to na intervalu najít :-(
a co takto uniqid("hocico"); - to by malo generovat unikatne nahodne cislo,
a keby este istejsie - tak md5(uniqid("hocico"));
to by malo generovat nieco take ako to session_id cislo...(neviem presne ako sa generuje toto cislo), to "hocico" moze byt lubovolny text - podla manualu
session_id() vrati cislo vygenerovane pre session - ekvivalentne s $PHPSESSID
$kod = UniqID();
alebo:
$kod = MD5(UniqID());
<HTML>na otazku:
>Je v php nějaký zaručený způsob jak vygenerovat číslo
mi nepripada spravna odpoved:
$kod = UniqID();
alebo:
$kod = MD5(UniqID());
co myslis lackop.. ? :) nebo tobe to vraci cisla?</HTML>
aha, obidvaja sme sa sekli, uniqid aj md5 vracaju string