IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Ecrire une variable dans un fichier txt


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut Ecrire une variable dans un fichier txt
    Bonjour,

    Je dois réaliser un générateur de mot de passe qui ensuite rentre les mots de passe dans des fichiers en fonction de la case sélectionnée.
    Je suis arrivé à créer mon générateur de mdp mais pas à écrire ma variable dans un fichier .txt malgré toutes les recherches que j'ai effectuée sur internet.
    Je dois faire la même chose sur des fichiers .pdf, .xml, .csv et .sql.

    Voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    <html>
    	<head>
    		<meta charset="utf-8"/>
    		<link rel="stylesheet" href="style.css" />
    		<title>Générateur de mots de passe</title>
    	</head>
        <body>
            <div id='bandeau'>
    			<h1>Générateur de mots de passe</h1>
    		</div>
    		<form method="post" action="generateur.php" name="pwd">
    			<div id='contenu'>
    				<p>Longueur du mot de passe: <input type="text" name="longueur" id="longueur"/></br>
    				Nombre de mot de passe: <input type="text" name="nombre"/></br>
    				<input type='submit' name="generer" value='Générer'>
    				<input type="submit" name="associer" value="Associer">
    				<input type="submit" name="doublons" value="Doublons">
    				</p>
    			<div id='menu'>
    			<p>
    				<input type="checkbox" checked name="minuscules" id="minuscules">Lettres minuscules<br/>
    				<input type="checkbox" checked name="majuscules" id="majuscules">Lettres majuscules<br/>
    				<input type="checkbox" checked name="chiffres" id="chiffres">Chiffres<br/>
    				<input type="checkbox" checked name="caracteresspeciaux" id="caracteresspeciaux">Caractères speciaux<br/></br>
    				<input type="checkbox" name="xls" />XLS</br>
    				<input type="checkbox" name="txt" />TXT</br>
    				<input type="checkbox" name="pdf" />PDF</br>
    				<input type="checkbox" name="xml" />XML</br>
    				<input type="checkbox" name="sql" />SQL</br></br>
    				<input type="checkbox" name="windows" />Script Linux</br>
    				<input type="checkbox" name="linux" />Script Microsoft</br></br></p>
    			</div></div>
    		</form>
    <?php
    if (isset ($_POST['generer'])){
    	function passwdgenerator ($nb,$valeurs,$nbvaleurs){
    		$resultat=""; $i;
    		for($i=0;$i<$nb;$i++){
    			$val=$valeurs[rand(0,$nbvaleurs-1)];
    			$resultat=$resultat.$val;
    		}
    		return $resultat;
    	}
    	$nombre=$_POST['nombre'];
    	for($j=0;$j<$nombre;$j++){
    		$minuscules=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
    		$majuscules=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    		$chiffres=array("0","1","2","3","4","5","6","7","8","9"); 
    		$caracteresspeciaux=array("&gt;","&lt;",",",";",".","/",":","&amp;","|",")","(","~","#","{","}","[","]","-","=","$","*","!","?");
    		$longueur=$_POST['longueur'];
    		$touslescaracteres=array();
    		if(isset($_POST['minuscules'])){
    			$touslescaracteres=$touslescaracteres + $minuscules;
    		}
    		if(isset($_POST['majuscules'])){
    			$touslescaracteres=array_merge($touslescaracteres,$majuscules);
    		}
    		if(isset($_POST['chiffres'])){
    			$touslescaracteres=array_merge($touslescaracteres,$chiffres);
    		}
    		if(isset($_POST['caracteresspeciaux'])){
    			$touslescaracteres=array_merge($touslescaracteres,$caracteresspeciaux);
    		}
    		$nbcaracteres=count($touslescaracteres);
    		$motdepasse=passwdgenerator($longueur,$touslescaracteres,$nbcaracteres);
    		if($_POST['longueur'] > 0){
    			echo "<p>$motdepasse</p>";
    		}
    		else{
    			echo "<p>Problème lors de la création du mot de passe</p>";
    		}
    	}
    }
    if(isset($_POST['associer'])){
    	if(isset($_POST['xls'])){}
    	if(isset($_POST['txt'])){
    		$f = fopen("mdp.txt", "w");
    		fwrite($f, $motdepasse);
    		$f = fopen("mdp.txt", "r");
    		fclose($f);
    	}
    	if(isset($_POST['pdf'])){}
    	if(isset($_POST['xml'])){}
    	if(isset($_POST['sql'])){}
    }
    ?>
        </body>
    </html>
    Merci de votre aide !

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Quand tu fais "associer" le mot de passe n'est pas généré, donc forcement ça ne marche pas.

    Tu devrais développer en affichant les erreurs PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    quelques mots sur ton code :
    tu peux avantageusement remplacer ces bouts de codes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $minuscules=array("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");
    $majuscules=array("A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
    $chiffres=array("0","1","2","3","4","5","6","7","8","9");
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $minuscules = range('a', 'z');
    $majuscules = range('A', 'Z');
    $chiffres   = range(0, 9);
    Tu devrais également reprendre le code de ta fonction passwordgenerator().
    Enfin pour écrire dans données dans un fichier tu as à ta disposition la fonction file_put_contents()

  4. #4
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut
    Merci pour vos réponses !

    @sabotage
    Comment faire pour que le mot de passe soit généré quand on fait "associer"?
    J'ai pensé à stocker ces mdp dans une variable pour les réafficher quand les associe dans le fichier texte mais je ne vois pas comment faire ^^"

    @rawsrc
    Merci pour l'astuce
    Par contre quand tu dis "reprendre le code de ta fonction" qu'entends tu? Est-elle mal codée ou optimisée?

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Il faut voir ce que tu veux exactement dans ton interface.
    Tu veux que l'utilisateur voit le mot de passe et que seulement après il l'écrive dans un fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    le paramètre $nbvaleurs ne sert strictement à rien car il correspond en fait à count($valeurs) - 1 donc il ne devrait pas exister.
    Cela réduit la fonction à ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function passwdgenerator($length, $chars){
        $pwd = '';
        $max = count($chars) - 1;
        for($i = 0; $i < $length; ++$i){
            $pwd .= $chars[rand(0, $max)];
        }
        return $pwd;
    }
    Notes aussi que rand() est un générateur de valeur pseudo-aléatoire. Inutilisable dans la sécurité d'un site. PHP offre tout ce qu'il faut pour ces aspects : regarde ici et la section Voir aussi

  7. #7
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut
    J'aimerais que l'utilisateur puisse voir les mdp générés puis ensuite, s'il le désire, les copie dans un fichier de son choix.

    En fait je les associe pour prendre des logins d'une base de données et leur associe un login généré à chacun dans un fichier.
    Les scripts vont ensuite me rentrer ce qu'il y a dans les fichier dans la base de données avec les mdp.

  8. #8
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tu peux mettre le mot de passe généré en session pour pouvoir le ré-utiliser au deuxieme traitement.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  9. #9
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut
    Désolé mais je suis novice mais comment on peut le mettre en session?

  10. #10
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Tout au début du fichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?php
    session_start();
    Pour la génération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($_POST['longueur'] > 0){
    			echo "<p>$motdepasse</p>";
                            $_SESSION['mdp'] = $motdepasse;
    		}
    Pour l'association :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST['associer'], $_SESSION['mdp'])){
    	if(isset($_POST['xls'])){
    	   file_put_contents('mdp.txt', $_SESSION['mdp']); 
    	}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  11. #11
    Membre du Club
    Homme Profil pro
    Novice
    Inscrit en
    Mars 2014
    Messages
    65
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Novice

    Informations forums :
    Inscription : Mars 2014
    Messages : 65
    Points : 47
    Points
    47
    Par défaut
    Merci pour ton aide
    J'ai un seul mdp qui s'affiche dans le fichier texte, il faut que je le mette dans une boucle pour que tous les mdp s'affichent dans le fichier?

  12. #12
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if($_POST['longueur'] > 0){
    			echo "<p>$motdepasse</p>";
                            $_SESSION['mdp'][] = $motdepasse;
    		}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST['associer'], $_SESSION['mdp'])){
    	if(isset($_POST['xls'])){
    	   file_put_contents('mdp.txt', implode("\r\n", $_SESSION['mdp'])); 
    	}
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Récupération d'une variable dans un fichier txt
    Par killgones dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 09/07/2014, 09h17
  2. Incrémentation d'une variable dans un fichier .txt
    Par beber005 dans le forum Général Java
    Réponses: 9
    Dernier message: 10/04/2013, 10h23
  3. Ecrire une liste dans un fichier .txt
    Par afifaNancy dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 14/02/2011, 16h49
  4. Réponses: 9
    Dernier message: 21/05/2007, 00h33
  5. Ecrire une variable dans un fichier
    Par slam dans le forum Général Python
    Réponses: 2
    Dernier message: 14/04/2006, 18h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo