Débat: Rendre unique un nom d'image pour un generateur de banniere

Mastronic Messages postés 94 Date d'inscription lundi 8 août 2005 Statut Membre Dernière intervention 13 juin 2012 - 20 nov. 2006 à 10:55
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009 - 20 nov. 2006 à 18:50
Bonjour,

J'ai une application permettant de génerer des bannieres.

Si deux utilisateurs créer le bannieres en meme temps.. comme le nom de l'image est la meme, lun des deux utilisateurs rique d'utilisé à une etape l'image de l'autre.
Le nom de l'image est unique, et stockée sur le serveur.

Cette ressource n'est pas partagable...

Ma question:
Quelle proceder peut t'on utilisé pour que le nom de l'image soit attitré à l'utilisateur..

IP --> pas unique.. plusieurs postes, vue de internet, peuvent avoir la meme adresse IP
Sessions --> avec les commande session_star() et session_id(). le numero de sessions est unique mais l'utilisateur ne peut creer deux banniere en parallele...
Time --> risquer, par malchance deux utilisateurs pourrait avoir déclancher une generation de banniere.. ( ce qui m'ettonerais.. )

Voyez vous une autre idées?

D'avance merci.

3 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
20 nov. 2006 à 12:10
hello,

$sBannerId = sha1(uniqid (mt_rand(), true));

Très très peu de risque...
Linkman Messages postés 113 Date d'inscription lundi 23 décembre 2002 Statut Membre Dernière intervention 24 juin 2009
20 nov. 2006 à 15:24
Voir aussi la fonction tempnam
cs_jean84 Messages postés 449 Date d'inscription jeudi 26 août 2004 Statut Membre Dernière intervention 5 mars 2009
20 nov. 2006 à 18:50
Salut !


"Time --> risquer, par malchance deux utilisateurs pourrait avoir
déclancher une generation de banniere.. ( ce qui m'ettonerais.. )"


Plus qu'improbable car meme si 2 utilisateur cliquais en meme temps,
l'acheminement sur le reseau sera surement different, et meme si les
requetes arrivaient au meme moment sur le serveur, celui ne pourrait
les traitesque l'un apres l'autre... l'utilisation de microtime()
resoudrait surement l'affaire :


>$Value sha1(microtime().timestanp().rand($_HTTP['remote_addr'], $_HTTP['remote_addr']));


Histoire d'etre sûr ^^
Rejoignez-nous