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:password4J'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$2aoiIU0PoYnaIJj17lfhc0Le 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