begin process at 2012 02 13 07:54:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Ecriture/lecture dans un fichier ".htpasswd"


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Ecriture/lecture dans un fichier ".htpasswd"

dimanche 15 mars 2009 à 11:34:08 | Ecriture/lecture dans un fichier ".htpasswd"

davidcian

Bonjour,

Voila je voudrais pouvoir modifier a souhait un fichier ".htpasswd":

Le fichier ".htpasswd" se présente comme ca:

log1:password1
log2:password2
log3:password3
log4:password4


J'ai fait une fonction et j'en suis la:

    function updatehtpasswd($tab,$file){
        //tab est un tableau n elements. chaque element a en indice 0 le username et //en 1 le mot de passe non crypté.
        //file contient le chemin vers le fichier htpassw

        $handle=fopen('./secu/.htpasswd','w');
         
        if($handle){
                    $contenu="";
                   
                    foreach($tab as $user){
                        //On séparre le login et le mot de passe
                        for($i = 0; $i < count($user); $i++) {
                            $separe_log_pass = explode(":", $user[$i]);
                            $contenu .= $separe_log_pass[0].":".$separe_log_pass[1]."\n";
                        }
                    }
        //On ajoute l'utilisateur en cours
        $contenu .= $_POST["username"].":".crypt($_POST["password"])."\n";
        fwrite($handle,$contenu);
        echo $contenu ;
        fclose($handle);
        }
    }

   
    $chaine_secu = file("./secu/.htpasswd");
    //On découpe la chaine de caratére par \n
    $log_pass = explode("\n", $chaine_secu);
   
    updatehtpasswd($log_pass,$chaine_secu);

mais il y a une erreur car après exécution je récupère ça:

A:
AzRaEl:$1$sUQa2RxZ$2aoiIU0PoYnaIJj17lfhc0


Le nouveau compte c'est bien ajouté, mais les ancien....

A mon avis j'ai cafouillé a ce niveau la:

foreach($tab as $user){
                        //On séparre le login et le mot de passe
                        for($i = 0; $i < count($user); $i++) {
                            $separe_log_pass = explode(":", $user[$i]);
                            $contenu .= $separe_log_pass[0].":".$separe_log_pass[1]."\n";
                        }

Merci de votre aide

Az


lundi 16 mars 2009 à 12:18:28 | Re : Ecriture/lecture dans un fichier ".htpasswd"

mike1310

Non tu n'as pas cafouillé ou tu le dis ... Ce qui se passe c'est que tu ouvre ton fichier en mode écriture simple et donc tout ce que tu ajoutes s'ajoute par dessus ce qu'il y avait ... C'est à dire qu'a chaque ajout, tout est supprimé et seul ton enregistrements est ajouté ... Je crois qu'il faut ouvrir ton fichier de la sorte :

$handle=fopen('./secu/.htpasswd','w+');

ou

$handle=fopen('./secu/.htpasswd','a');

Je sais plus trop ... de mémoire les deux fonctionnes ... sinon aucun ne fonctionne tu doit dabord ouvrir ton fichier en lecture ... récupérer les infos et les ajouter par la suite en meme temps que ton nouvel enregistrements ...
lundi 16 mars 2009 à 12:46:28 | Re : Ecriture/lecture dans un fichier ".htpasswd"

davidcian

Réponse acceptée !
J'ai refait mon code comme ca:

function edit_htpasswd($file, $user, $password){
//if (!file_exists($file) || !is_readable($file)) throw new exception('File not found');
$rows = explode("\n",file_get_contents($file)."\n");
$content = '';
foreach($rows as $row) {
if (substr($row,0,strlen($user.':')) !== $user.':' )
$content .= $row."\n";
}

if ($password)
$content .= $user.':'.crypt($password)."\n";

//return file_put_contents($file,$content);
$f = fopen($file, 'w');
fwrite($f, $content);
fclose($f);
}

edit_htpasswd('./secu/.htpasswd',$_POST["username"],$_POST["password"]);

Ca marche!

merci de ton aide

Az
jeudi 23 avril 2009 à 20:24:40 | Re : Ecriture/lecture dans un fichier ".htpasswd"

marcelolipi

cool

marcelolipi javascript:Insert_Emoticon('/imgs2/smile_cool.gif');


Cette discussion est classée dans : log, contenu, pass, htpasswd, separe


Répondre à ce message

Sujets en rapport avec ce message

Analyseur de fichier log [ par matador1 ] Bonjour sous le cadre de mon PFE je doit developper une application web ( php) qui va analyser le fichier log de squid ( nommé acess.log) extraire le Verification de fichier [ par godofgames ] Bonjour j'ai une question j'ai un site a realiser pour quelqu'un et cette personne veux pouvoir faire les modification elle meme mais elle ne veux rie pb suppression cookies [ par joebuz ] Bonjour, j'avais une section membre toute bête avec un formulaire de log sur l'index renvoyant a la page connexion et une fois loggé un bouton de deco Bug Login [ par Sniperman113 ] (Re)Bonjour (2eme post de la journée tout va bien ...),Alors cette fois-ci ce n'est plus dans un formulaire que j'ai un problème, c'est pour le login. Ajax....et javascript [ par chmod777 ] Bonjour à tous!mon problème est le suivant: lorsque je charge via une fonction AJAX le contenu d'une page html dans un div (genre mondiv.innerHTML = c avoir un nom de variable dynamique [ par nougitch ] Bonjour,Est-il possible de modifier le nom d'une variable.Si je prends l'exemple d'une boucle par exemple.Puis-je faire quelque chose du genre :for ($ Je vais péter un plomb : Parse error [ par Tupac59 ] Voila mon problème, mon code fait 64 lignes html compris et lorque j'essai de lancer ma page avec easy php j'ai ce message : Parse error: parse error insertion dans une base [ par 01cod10 ] pouvez vous m'aider à corriger ce bout de script. Voici le message d'erreur que j'ai eu :  Erreur SQL !INSERT INTO membres VALUES("", "monia", "ff3d00 Problème de portée de variable URGENT [ par Tupac59 ] Voila le problème: depuis la page précédente je POST ['log2'], dans la page suivante je récupère ce log2 dans la variable $log et cela fonctionne puis Contenu d'une page https. [ par cz1702 ] Bonjour à tous,Est il possible de lire le contenu d'une page https qui nécessite un certificat de sécurité en PHP ?Ce n'est en aucun pour pirater un s


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,952 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales