Bonjour.
j'ai créer une page en php d'administration qui changera le mot de passe du fichier .htacess de mon serveur apache.
mon fichier est tres simple il se compose d'une ligne :
user:lemotdepasse
l'utilisateur entre le mot de passe par l'intermédiaire d'un input type password.
que je recuperer avec la variable $pass1.
apres plusieurs recherche je suis arrivé a ce code ( je sais pas si c'est l plus simple mais c'est ou je suis arrivé a quelque chose de +- correct )
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
| // on modifie le fichier htaccess.
$monfichier=fopen("../.htpasswd","r"); // ouverture du fichier
while (!feof ($monfichier)) // tant que pas en fin de fichier
{
$lecture = fgets($monfichier, 4096); // stockage dans $lecture
$donnee=explode(":",$lecture); // parsing des données basé sur "*")
$combien=count($donnee)-1; // nbre d'éléments séparés par "*"
echo "<b>Ce fichier contient ",$combien," données : </b><br><br>";
for ($i=0;$i<$combien;$i++)
{
// modification des données
// on modifie ":" en "2°"
if (ereg(":",$donnee[$i])){$donnee[$i]=str_replace(":",$pass1,$donnee[$i]);}
// stockage temporaire des données toujours avec le séparateur
$liste_modif.=$donnee[$i].":";
}
}
fclose($monfichier); // fermeture
$monfichier=fopen("../.htpasswd","w+");
fwrite($monfichier,$liste_modif);
fclose($monfichier); |
mais bien sur si je suis ici c'est pas pour rien : j'ai une erreur 
Voici l'erreur php :
Ce fichier contient 1 données :
Notice: Undefined variable: liste_modif in C:\Program Files\EasyPHP 2.0b1\www\SellMate\Config\change.php on line 111
Your password have been changed
et mon fichier .htaccess est devenu : ma ligne 111 :
$liste_modif.=$donnee[$i].":";
merci de votre aide.
Partager