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 :

[Système] mise à jour d'un fichier .htpasswd


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Inscrit en
    Décembre 2004
    Messages
    18
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 18
    Points : 18
    Points
    18
    Par défaut [Système] mise à jour d'un fichier .htpasswd
    Bonjour,

    Mon site est protégé par un couple .htaccess/.htpasswd, avec donc des utilisateurs et des mots de passe.

    J'aimerais faire une fonction php qui puisse ajouter, supprimer ou mettre à jour des utilisateurs dans ce .htpasswd.


    Ainsi je pourrais changer le mot de passe d'un utilisateur à partir de mon interface admin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    	$command = "htpasswd -b /www.truc.fr/ModuleLogin/.htpasswd ikkyu blop";
    	exec($command);
    	echo "htpasswd: $result[0] | $value<br/>";
    Dans ce code, je fais l'update en passant par un shell.
    Malheureusement cela ne marche pas.
    En retour, $result[0] est vide alors qu'il devrait contenir "Adding password for user ikkyu"
    et value vaut 0, ce qui veut dire qu'il n'y a pas eu d'erreur, selon le man: "returns a zero status (true) if the username and password have been successfully added or updated in the passwdfile".

    Avez vous déja eu ce genre de problème ?
    Comment l'avez vu résolu ?

    Y aurait il un autre moyen de mettre à jour ce fichier ?

    Merci d'avance pour votre aide

    Bonne journée

  2. #2
    Nouveau membre du Club
    Inscrit en
    Avril 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 33
    Points : 26
    Points
    26
    Par défaut
    J'avais commencé un truc du genre, mais perso, j'avais opté pour la solution fopen et fputs pour rajouter dans le fichier de mot de passe.

  3. #3
    Membre régulier Avatar de dervish
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 100
    Points : 105
    Points
    105
    Par défaut
    Salut,
    il me semble qu'il te manque simplement la déclaration de $result et de $value dans ta commande exec pour que tes valeurs de retour y soient...
    http://fr.php.net/manual/fr/function.exec.php

  4. #4
    Membre chevronné
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Points : 1 839
    Points
    1 839
    Par défaut
    Salut,

    il faut faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       $mdp     = $_POST['mdp'];
       $pseudo  = $_POST['pseudo'];
       $commande = exec("/usr/bin/htpasswd -b .htpasswd ".$pseudo." ".$mdp." 2>&1", $out, $err);
       if(!$err) echo $out[0];
       else echo "Error creating password for user ".$pseudo;
    ;-)

    [EDIT]
    Tu peux bien entendu remettre une URL en lieu et place de l'adresse relative du fichier htpasswd

  5. #5
    Jep
    Jep est déconnecté
    Futur Membre du Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5
    Points : 6
    Points
    6
    Par défaut
    Tu peut aussi acceder directement au contenu du fichier .htpasswd (avec fopen ou file_get_contents par exemple) et modifier toi même les données à l'interieur.

    Note : pour crypter le mot de passe, il faut utiliser la fonction crypt qui utilisera le même syteme de cryptage des mot de passe que le systeme de fichier.

    C'est plus interressant en terme de portabilité qu'une commande shell qui ne sera pas forcement accessible dans les mêmes conditions partout !


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

Discussions similaires

  1. Mise à jour d'un fichier
    Par Michel Alpes dans le forum Langage
    Réponses: 1
    Dernier message: 22/03/2007, 19h34
  2. mise à jour d'un fichier excel à partir d'un textbox
    Par hachdotnet dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/03/2007, 15h59
  3. IOError lors de la mise à jour d'un fichier
    Par oiffrig dans le forum Général Python
    Réponses: 3
    Dernier message: 09/03/2007, 19h13
  4. Mise à jour liaison de fichier
    Par melodyyy dans le forum Général VBA
    Réponses: 7
    Dernier message: 25/11/2006, 12h48
  5. Réponses: 3
    Dernier message: 05/12/2005, 14h17

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