Problème de boucle do while

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème de boucle do while

Re: Problème de boucle do while

par stealth35 » 11 janv. 2011, 02:11

pas top comme technique, ton va facilement mettre énormément de temps pour s'exécuter, pour un nombre limiter de possibilité, un coup de brute force et quelque minute le hash saute, sinon au niveau de ton code y'a uniquement la recherche, d'ailleurs le $hash n'a pas l'air de se réinitialiser :wink:

EDIT : pas besion de boucle non plus pour creer ton $hash, un simple implode fera l'affaire

Problème de boucle do while

par JPMariotte » 11 janv. 2011, 01:13

Bonsoir à tous,
Je suis en train de réaliser une boucle do while pour générer un hash unique de 4 caractères à mettre dans une sql.
La boucle sert à vérifier si le hash n'existe pas dans la base sinon on régénère un hash et on retest mais le problème est que j 'ai de temps en temps des doublons dans mes hash.
Voici mon code

Code : Tout sélectionner

do { $caracteres = array("a", "b", "c", "d", "e", "g", "h", "k", "l", "m", "n", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z", 1, 2, 3, 4, 5, 6, 7, 8, 9); $caracteres_aleatoires = array_rand($caracteres, 4); foreach($caracteres_aleatoires as $i) { $hash .= $caracteres[$i]; } $sql=mysql_query("SELECT count(id) FROM url WHERE hash ='$hash'")or die(mysql_error()); $resultat = mysql_fetch_array($sql); } while ($resultat[id] != 0);
Avez vous une idée sur le pourquoi j'ai des hash identique ?
Merci de votre aide