Générer TOUTE les codes de 5 lêttre possible. [Code PHP]

Eléphant du PHP | 54 Messages

19 juin 2008, 21:40

Bonjour,

Je cherche à créer un petit Code PHP mais je ne sais pas dutout par où mis prendre.

Le Contexte:
Je cherche à créer une page web (je copirai et collerai ensuite tout le résultat dans un fichier texte)(une seule fois) Qui génèrerais un CODE. Ce CODE peut CONTENIR toute les lêttres de l'alphabet (minuscule seulement), elles peuvents se répéter, mais je ne veux pas que dans la page le code se répète. Je voudrais aussi que sa passe une ligne à chaque fois.

Pourquoi faire sa. Car je cherche à avoir toute les possibilité pour ensuite en prendre un au hasard dans la liste et l'envoyer par MAIL pour une validation mais dans mon Contexte il ne faut pas que quelqu'un est le même sinon sa fera des conflit dans ma BDD (cette partie on s'en foutait un peu)

Je sais comment générer un code, mais pas de lui mêttre des conditions du genre:
- Que l'on ne retrouve pas 2 fois le même code de 5 lêttre dans la liste
- Comme c'est une liste j'aimerais numéroté chaque entré
- Changer de ligne à chaque code.
- Si possible les classers par ordre alphabétique mais c'est pas oubligé
- Que la boucle ne sois PAS infinie qu'il s'arête une fois toute les possibilités sorties

(pour la suite je sais comment faire :D Sinon je reposterai ;))

Petit exemple pour d'ébrouiller le tout:
Prendre note que je vais seulement activer se script UNE fois ensuite je prendré les résultat en notes dans un fichier texte et j'éditerai grace à PHP

Bon alors,
Change de ligne à chaque combinaison (OK)
1- Le code démare (OK)
2- Il génère des codes (OK)
3- Suprime ceux qui se répète au fur et à mesure (NON)
4- Met par ordre alphabétique aussi (NON)
5- Numérote chaque ligne (Que se sois en ordre ou pas ou que sa saute des numéro on sen fou) (OK)
6- ARÊTE quand il n'y a plus de combinaison possible. (NON)

Pour ceu qui on un (OK) sa signifie que je sais (et bien je crois savoir) comment faire.
Vous l'aurai devinné ceux avec un (NON) signifies que je ne sais les réaliser.

Merci beaucoup à celui ou celle qui m'aideras et qui donneras un peu de son temps à un petit pourri comme moi :wink:

Voici aussi un petit code que j'ai suivit il y a longtemps. C'est à titre d'info, que vous voyez un peu mon niveau PHP.

P.s. Encore DSL pour la langue qui laisse surement à désirer. Ma langue première n'est pas le francais et j'ai un peu de difficulté avec toutes ces règles de grammaires et le pluriels :oops:

CODE d'info seulement (Je désire en faire un de ZÉRO):
<?php
session_start(); // Créér la session
$liste = "abcdefghijklmnopqrstuvwxyz123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
$code = '';
 
// Mettre 5 caractères aléatoirement dans $code...
while(strlen($code) != 5) {
        $code .= $liste[rand(0,63)]; 
}
// ...et le mettre dans la session.
$_SESSION['code']=$code;
 
header('Content-type: image/jpeg'); // On définit le type de fichier
header('Cache-Control: no-store, no-cache, must-revalidate'); 
// L'image ne doit pas être enregistrée dans le cache, puisqu'elle va être changée à chaque fois.
 
$img = imageCreate(40, 15); // Créer une image de 40x15 pixels
$fond = imageColorAllocate($img,255,255,255); // On choisit la couleur du fond (en RVB)
$texte = imageColorAllocate($img,0,0,0); // Idem, mais pour la couleur du texte
$police = 2; // L'ID de la police (entre 1 et 5, pré-inclues dans PHP)
 
imageString($img, $police, 5, 1.875, $code,$texte);  // Ecrire le code sur l'image
imagejpeg($img,'',30); // Image de mauvaise qualité histoire de tromper les bots
imageDestroy($img); // Détruire l'image
?>
Maxime
Encore Merci! :wink:
S'il faut vivre longtemps, vaux mieu le faire avec le sourire.

Petit nouveau ! | 9 Messages

19 juin 2008, 21:50

Il te suffirait de faire un champ dans ta bdd avec le code en question, et de vérifier à chaque création d'un code s'il ne figure pas déjà dans la bdd non ?

Eléphant du PHP | 54 Messages

19 juin 2008, 22:04

JE cherche à le faire SANS BDD.... c'est pas possible?
S'il faut vivre longtemps, vaux mieu le faire avec le sourire.

Petit nouveau ! | 9 Messages

19 juin 2008, 22:34

JE cherche à le faire SANS BDD.... c'est pas possible?
Ce serait un peu laborieux. A la rigueur tu peux écrire un fichier contenant le nom d'utilisateur et le pass.

Par contre inutile de créer une première liste de tous les codes possibles, tu as environ 11 millions de possibilités. Donc tu peux jeter un oeil sur les fonctions fopen, file_get_contents, explode, ereg...

Eléphant du PHP | 54 Messages

19 juin 2008, 22:47

Merci :D
S'il faut vivre longtemps, vaux mieu le faire avec le sourire.

ViPHP
ViPHP | 4039 Messages

20 juin 2008, 11:20

Si c'est pour générer un mot de passe (ce que j'ai pu comprendre en lisant en vitesse), tu auras bien plus vite fait d'utiliser des algos comme sha1(), md5() ou même crc32(), en te basant sur l'heure, le nom de la personne, ce que tu veux.

Rien qu'avec crc32, ce sont 4 milliards de possibilités, je crois que ça ira :wink:

Et au passage, une bibliothèque qui teste la solidité des mots de passe:
http://be.php.net/manual/fr/intro.crack.php
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 54 Messages

30 juin 2008, 00:26

Merci énormément, le lien des mot de passe m'aideras grandement à mieu sécuriser mon Site Web

EDIT:
Lien mort....? Sois le site est EXTREMEMENT long ou bien le lien est mort car je ne peux voir la page :(
S'il faut vivre longtemps, vaux mieu le faire avec le sourire.

ViPHP
ViPHP | 4039 Messages

30 juin 2008, 10:13

quel lien ? vers php.net ? son mirroir belge est extrêmement lent, oui (d'ailleurs, j'utilise le mirroir danois), mais bon, le mirroir français n'est pas difficile à atteindre.. (indice: remplacer be par fr)
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Eléphant du PHP | 54 Messages

30 juin 2008, 23:03

c'est parfait :D
S'il faut vivre longtemps, vaux mieu le faire avec le sourire.