Page 1 sur 1

Generer un nombre aléatoire apres insertion dans un base

Posté : 03 mai 2006, 11:25
par nikitou
Bonjour à tous ! :lol:


Voila mon tit probleme j'ai un scriptpour générer un mot de passe mais j'aimerais que une fois créer avant qu'il ne s'affiche sur la page il soit testé dans ma base de donnée

Si celui-ci existe déjà un autre soit créer

voici mon bout de script
<?php
// ------------------------------------------------------------- 
// Script générant un mot de passe aléatoire 
// ------------------------------------------------------------- 
  
$Caractere_possible = "abBDEFcdefghijkmnPQRSTUVWXYpqrst0123456789"; 
$Nb_caracteres = 8; // Nombre de lettres du mot de passe 
srand((double)microtime()*1000000); 
for($i=0; $i<$Nb_caracteres; $i++){ 
$Pass .= $Caractere_possible[rand()%strlen($Caractere_possible)]; 
} 

mysql_connect("", "", "");
mysql_select_db("");

$reponse = mysql_query("SELECT * FROM xxxx");
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['code'] == "$Pass")
{
for($i=0; $i<$Nb_caracteres; $i++){ 
$Pass1 .= $Caractere_possible[rand()%strlen($Caractere_possible)]; 
} 
$Pass1 = $Pass;
}
else
{
// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO xxxx VALUES('', '$Pass')");
} 
  }

echo "$Pass"; 
?>
pouvez vous me dire les erreurs que j'ai fait car j'ai des problemes dans ma table le mot générer s'insère une nombre inconsidérable de fois dans la base.

Merci d'avance à tous

Posté : 03 mai 2006, 11:38
par Vaedan
Ton query INSERT est dans le while. Tu dois mettre juste après break (ou break 2, je ne sais pas bien).

Posté : 03 mai 2006, 11:49
par nikitou
merci mais cela n'a pas résolu mon probleme :(
break 1;
// On ajoute une entrée avec mysql_query
mysql_query("INSERT INTO xxxx VALUES('', '$Pass')");
ce que j'aimerais c'est qu'il ne puisse jamasi y avoir deux code identiques dans la base de donnée

Posté : 03 mai 2006, 12:05
par Vaedan
je pense que ça ne serait à rien de vérifier si le pass est deja présent ! tu as 62^8 mot de passe différents ! et meme si 2 membres ont le meme mot de passe, où est le probleme ???

je dis ça car si tu génere un autre mdp si le précédent est dans la bdd, tu devras de nouveau effectuer la rechercher pour voir si le mdp généré n'est pas présent aussi !

Posté : 05 mai 2006, 10:31
par nikitou
Bonjour :lol:

Bon je t'explique entièrement mon idée

Je créer un code alléatoire que j'insère dans ma base de donnée

Ensuite j'ai un site de jeu du genre toilokdo etc...

Donc je veux générer mes codes

Je veux donc ensuite les testé pour voir s'il sont bien dans la base de donnée

Ensuite lorsqu'une personne rentre son code je fais
$r=@file("http://www.monsite.com/xxxx.php?Pass=lecodeentre"); 


// on teste la réponse du serveur
 if (ereg("NON",$r[0])) {
// Le serveur a répondu NON : l'accès est donc refusé
echo "NON";
 }
 if (ereg("OUI",$r[0])) {
// Le serveur a répondu OUI : l'accès est donc accepté
echo "OUI bravo";
 }
et sur ma page xxxx.php j'ai :
<?

$Pass=$HTTP_GET_VARS["Pass"];

mysql_connect("", "", "");
mysql_select_db("");

$reponse = mysql_query("SELECT * FROM xxxx");
while ($donnees = mysql_fetch_array($reponse) )
{
if($donnees['xxxx'] != "$Pass")
{
echo "NON" ;
} 
else
{
echo "OUI" ;
} 
}
?>
Mais j'ai des petit problème cela ne fontionne pas comme je le voudrais
et souvent ma réponse est plutôt du type : OUINON ou NONNON bravo etc.. ais-je des erreur dans mon script

Merci à tout ceux qui m'aideront