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 :

Modification des données utilisateur stockées dans un fichier [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut Modification des données utilisateur stockées dans un fichier
    Bonjour, je voudrais créer une fonction qui me permet de modifier un mot:
    je m'explique:
    -le fichier texte est un ensemble de données
    -on a pour chaque utilisateur une ligne qui lui ai propre
    -chaque ligne commence par le login de l'utilisateur
    une ligne c'est:
    login| Mot de passe| Nom| Prénom|
    J'arrive a récupérer le login, je veut changer le mot de passe, sans devoir le rentrer dans un formulaire au préalable
    Je sais pas comment modifier le 2ème mot d'une ligne (il prendra la valeur du login)
    donc le nouveau fichier modifier devra être
    login| mot de passe==login| Nom| Prénom|

    Je vous remercie pour votre aide

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Points : 71
    Points
    71
    Par défaut
    Ça ne serait pas plus simple à gérer avec un SGBD? MySQL par exemple...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Oui c'est ce que j'avais fais au tt début
    Mais mon responsable de projet souhaite à tt prix à ce que ce soit gérer par un fichier texte

  4. #4
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bonjour

    D'abord tu n'est pas dans le bon forum, il aurait fallu poster dans le forum php...

    Passons, pour ton problème que je ne suis pas sur d'avoir bien compris d'ailleurs je te proposerais de :

    1. Récupérer le contenu du fichier, vois : file-get-contents
    2. Découper le contenu de la chaine en utilisant explode (sous la condition que tes éléments soient tous séparés par le même délimiteur...
    3. Fait alors tes modifications grâce au tableau que te donne explode
    4. Replacer la chaine modifiée dans le fichier avec file-put-contents

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    je te remercie pour ta réponse je vais essayer de suivre ton plan
    Merci encore

  6. #6
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par Bebete Voir le message
    Au secour, je n'y arrive pas
    aidez moi stp
    Ca va nous être difficile de t'aider sans plus de précision : qu'est ce que tu n'arrives pas à faire.

    Et donnes nous ton code...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    je n'arrive pas à réaliser mon code
    il faut que je lise mon fichier texte, si le premier mot de la phrase est $Login, alors on change le second mot par $Mot (en sachant que chaque mot est séparé par un '|')

  8. #8
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Citation Envoyé par 12monkeys Voir le message
    Donnes nous ton code...

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Voilà mon code de début, mais il n'est pas bon
    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
    //Changement dans le fichier texte
          $ouvre = fopen ("$global/recapitulatif.txt","r");
    		  while (!feof($ouvre))
    		  {
    		$lecture=fgets($ouvre,4096);
    		$tab = ereg("$ID",$lecture);
    		echo $tab;
    			 if (ereg("$ID",$lecture))
    			 {
    $commentaire= $ID.'|        '.$ID_Min.'|            '.$tab[2].'|        '.$tab[3].'|        '.$tab[4].'|            '.$tab[5].'|            '.$tab[6];			 
           }
    fclose ($ouvre);
     
    //$commentaire= $ID.'|        '.$ID_Min.'|            '.$Prodots.'|        '.$Rights.'|        '.$T1.'|            '.$T2.'|            '.$T4;
     
    $ouvre = fopen("$global/recapitulatif.txt","a+"); //Je nomme le fichier qui va être créer recapitulatif.txt
    fputs($ouvre,$commentaire."\r\n");
    fclose($ouvre);         
    	   }

  10. #10
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Bon déjà je constate que tu n'as pas trop suivi mes propositions...

    Voici un petit code qui vaut ce qu'il vaut, fait en 10 minutes :

    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
    <?php
    $val_rech = 'sonnom';
    $nveau_mdp = 'nveau_mdp';
     
    $contenu = file_get_contents("doc.txt");// récupère le contenu du fichier
     
    $cont_tab = explode('|', $contenu);// sépare la chaine en un tableau
     
    $est_ds_tab = array_search($val_rech, $cont_tab);// vérifie si la donnée est dans le tableau
     
    if ($est_ds_tab == TRUE) {
        echo 'y est'."\n<br>";// la donnée y est on fait un traitement
     
    	$clef = $est_ds_tab + 1;// calcul la clef du mot de passe : par défaut + 1 par rapport au pseudo
     
    	$cont_tab[$clef] = $nveau_mdp;// on places le nouveau mot de passe dans le tableau
     
    	$nveau_cont_tab = implode('|', $cont_tab);// on change le tableau en chaine
     
    	echo $nveau_cont_tab;
     
    	$ecriture = file_put_contents("doc.txt", $nveau_cont_tab);// et on remet le tout dans le fichier
     
    	if ($ecriture != FALSE) {
    	    echo 'fichier enregistré correctement';// on vérifie si le fichier s'est bien écrit
    	}
     
    } else {
        echo 'y est pas';
    }
     
    echo '<pre>';
    var_dump($cont_tab);
    var_dump($est_ds_tab);
    echo '</pre>';?>
    Tu peut t'en inspirer pour l'adapter si nécessaire à tes besoins...

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    Excusez moi, j'ai essayé mais je n'arrive toujours pas à changer le mdp
    j'ai bien réussi à lire les données et les afficher sur l'écran, mais j'ai tjs : "y est pas"

  12. #12
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Si je pouvais te donner un conseil sur ce forum (et sur les autres d'ailleurs) c'est d'être plus précis dans tes explications et questions...

    T'as essayé mais ça marche pas, j'aurais aimé savoir ce que tu as fait, comment tu l'as fait...

    Là je dois deviner, alors je vais poser des questions qui pourraient ne pas être pertinentes : as tu étudié mon code, as tu essayé de le comprendre ? Alors qu'as tu fait de mes deux premières lignes ? en as tu fait quelque chose d'ailleurs ? comprends tu à quoi elles servent...

    Ces questions sont là pour que je comprenne ce que tu as essayé de faire... Merci de répondre à ces questions

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    34
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 34
    Points : 12
    Points
    12
    Par défaut
    J'ai effectivement étudié votre code, les deux premières lignes je les ai mises, en les modifiant par les valeurs dont j'ai besoin.
    Ce qui coince c'est au niveau de l'enregistrement du nouv_mdp dans le fichier texte

  14. #14
    Expert éminent
    Avatar de 12monkeys
    Homme Profil pro
    Webmaster
    Inscrit en
    Novembre 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2006
    Messages : 4 093
    Points : 9 031
    Points
    9 031
    Par défaut
    Ah, et as tu un message d'erreur ?

    Essaye aussi de mettre error_reporting(E_ALL); dans ton code pour afficher toutes les erreurs.

    Le fichier texte est il crée ? Parce que je n'ai implémenté la création de ce fichier en cas d'inexistence de celui ci.

    Enfin ce fichier texte ressemblait à cela lors de mes essais :

    monnom|monmotdepasse|uneinfo1|uneinfo2|sonnom|nveau_mdp|soninfo1|soninfo2

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/02/2015, 18h32
  2. Réponses: 13
    Dernier message: 16/06/2010, 12h17
  3. Réponses: 12
    Dernier message: 23/03/2009, 19h48
  4. Réponses: 3
    Dernier message: 26/09/2008, 13h10
  5. Réponses: 2
    Dernier message: 29/01/2007, 14h14

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