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 )

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
// 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 :
user:
ma ligne 111 :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
$liste_modif.=$donnee[$i].":";
merci de votre aide.