Autor Zpráva
claner
Profil *
Ahoj, potřeboval bych napsat v php script ktery by mi vytvářel unikátní id, pomůže pls nekdo?


----
Editace Mistrem: Úprava titulku a přesun tématu do vhodnější části diskuze.
Joker
Profil
Jestli na to ID nejsou zvláštní požadavky, stačila by na to jednoduchá databázová tabulka s jediným sloupcem- ID, primární klíč a auto_increment. Tam by se skladovaly už použité hodnoty. No a při každém požadavku na ID by skript zapsal do té tabulky a potom vrátil last_insert_id
claner
Profil *
aha.. to me vubec nenapadlo.. a pritom je to tak jednoduche :-) diky moc
Juras
Profil *
<?php echo time(); ?>
popřípadě
<?php echo md5(time()); ?>
peta
Profil
Juras
md5 je sumacni funkce. Sance, ze trefis stejne id tu je. Ale ten cas, to je bezva. To je jeste jednodussi nez s tou databazi.
Joker
Profil
peta
Sance, ze trefis stejne id tu je. Ale ten cas, to je bezva.
To je hodně nepravděpodobné, větší riziko je podle mě v tom, že pokud přijdou dva požadavky ve stejnou sekundu (což se v závislosti na druhu a vytížení aplikace stát může), dostanou duplicitní ID.

Bezpečnější varianta téhož by byla md5(microtime())
Ondrejjj
Profil *
podle me nejlepsi a nejschudnejsi je:
<?php
$hash = md5(microtime());
$hash .= md5($REMOTE_ADDR);

?>

unikatnost je zarucena temer na stoprocent musela by to byt velka haluz a treba ty cisla jeste promichat v poli pomoci rand.
Joker
Profil
Ondrejjj
Ten rand by to možná naopak zhoršíl.
Nicméně než s tím dělat taková alotria, to bych radši použil tu databázi, jak jsem psal ve svém prvním příspěvku :-)
Leo
Profil
Co treba PHP fce uniqid, nestacila by? :-) Leo

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: