Generer un code aléatoire

anthony595 -  
 Zozo -
bonsoir à tous ;)
je cherche un moyen de générer un code NUMERIQUE aléatoirement et comportant au moins 5 chiffres, en php.

je dois en fait créer un acces à a un parking virtuel grace a un system de codes aléatoires
il faut donc que j'affiche sur la page de l'utilisateur le code pour qu'il le retappe dans un formulaire....


vous voyez de quoi je parle?

5 réponses

Alain42
 
Bonjour,

je t'ai fait ça en HTML Javascript, tu peux modifier le nombre de chiffre, la j'ai mis a 5

<html>
<head>
<script>
function nombre_alea(id_ecrire){
	var nbr_ch=5; //  generation d'un nombre a 5 chiffres modifier si besoin
	var x=Math.random();
	var nb=x*Math.pow(10,nbr_ch);
	nb_g=Math.round(nb);
	//alert("nb= "+nb_g);
	var obj=document.getElementById(id_ecrire);
	obj.value=nb_g;
}
</script>
</head>
<body>
<br><br><form>
Nombre al&eacute;atoire g&eacute;n&eacute;r&eacute;:
<br>
<input type="text" name="champ_nombre_aleatoire" id="id_nombre_aleatoire">
<br>
<input type="button" name="nouveau_nombre" id="nouveau_nombre" value="G&eacute;n&eacute;rer un nouveau nombre" onClick="nombre_alea('id_nombre_aleatoire');">
</form>
<body>
</html>


5
aralicia Messages postés 20 Statut Membre 1
 
ton script est somme toute facile a faire, le voici, expliqué:

<? php

//création d'un fonction qui calcule une puissance
function puissance($nb, $exposant) {
$result = 1
for($n=1, $n<=$exposant, $n++) {
$result = $result * $nb
}
return $result
}


//création de la fonction qui génère le code
function code() {
srand((double)microtime()*1000000);
//intialisation du générateur de nombres aléatoires
$min = 5 //nombre minimum de chiffres
$max = 10 //nombre maximum de chiffres
$nb_chiffres = rand($min,$max);
// choix du nombre de chiffres entre $min et $max
$nb_max= puissance(10, $nb_chiffres) - 1 //nombre maximum possible (999...9)
$nb_min =puissance(10, $nb_chiffres-1) //nombre minimum possible (10...0)
$code = rand($nb_min, $nb_max)
return $code
}

?>


Voila deux fonctions qui réalisent l'ojectif. Il suffit d'appeller la fonction code() qui renvera le code produit
1
le père
 
Bonjour,

Attention aralicia, ta fonction renvoie bien un nombre de $min à $max chiffres, mais pas n'importe quel nombre.
En effet, la fonction rand ne rend que 32768 valeurs possibles différentes. Sur les milliards de nombres à 10 chiffres qui existent, tu ne verras jamais l'immense majorité !
Le 32768 dont je parle est valable pour les plateformes windows ; sa valeur sur une autre plateforme peut être obtenue par getrandmax().

essaye le script ci-dessous, tu verras qu'on retombe sur le même nombre aléatoire au bout de 32768 tirages...

<?php 
define ('RAND_MAX', getRandmax());

$x= rand(10000,1000000000);
  for ($k=1; $k<RAND_MAX+10; $k++) {
    $y=rand(10000,1000000000);
    if ($x==$y) {
      echo 'retour après ',$k,' itérations sur ',RAND_MAX;
      exit();
    }
  } 
  echo 'pas de retour après ',$k,' itérations';
?> 
0
Zozo
 
erf...
0
cloclo002 Messages postés 3 Statut Membre 1
 
Moi je cherche un code du genre mais en html c'est possible en HTML?
1
sebounet25
 
La fonction <?php rand(le minimun, le maximun); ?> mais c'est du PHP,
0
azertyuiop
 
non
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
rabatcool
 
Bonjour, merci Alain42 pour ce joli code pour moi je veux bien l'utilisé sous excel cela fait des jours que je cherche d'avoir un code qui me permet de generer un nombre aleatoire a chaque ligne remplie sous excel.

autrement dit je veux que excel me genere un code lors de la saisi qu'une ligne, merci d'avance de votre aide
0