<?php
	
	
	//modifie la conf
	function setBaseIniConf($pKey,$pValue) {
		$str="";
		$param=$pValue;
		$keyToChange=$pKey;
		
		$pathFileConf = "../application/access/baseini.conf";
		if (file_exists($pathFileConf)) {
		$fcontents = file($pathFileConf);
		while (list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
			$tab = explode (":", $ligne);
			$cle = array_shift($tab);
			if ($cle != "") {
				if ($cle != $keyToChange) {
					$str .= $ligne;			// On recrée la chaine de caractères avec les users
				}else
				{
					$str .= $keyToChange.":".$param."\n";
				}
			}
		}
		if ($fp = fopen($pathFileConf, "w-")) {			// On réécrit la chaine dans le fichier
			fwrite($fp,$str);
			fflush($fp);
			fclose($fp);
		}
	}
	}
	
	//modifie la conf
	function setKeyConf($pKey,$pValue) {
		$str="";
		$param=$pValue;
		$keyToChange=$pKey;
		
		$pathFileConf = "../application/access/fotoweb.conf";
		if (file_exists($pathFileConf)) {
		$fcontents = file($pathFileConf);
		while (list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
			$tab = explode (":", $ligne);
			$cle = array_shift($tab);
			if ($cle != "") {
				if ($cle != $keyToChange) {
					$str .= $ligne;			// On recrée la chaine de caractères avec les users
				}else
				{
					$str .= $keyToChange.":".$param."\n";
				}
			}
		}
		if ($fp = fopen($pathFileConf, "w-")) {			// On réécrit la chaine dans le fichier
			fwrite($fp,$str);
			fflush($fp);
			fclose($fp);
		}
	}
	}
	
	
	
	//ajoute un user password
	function setPass($pKeyAfter,$pValue) {
		$str="";
		$param=$pValue;
		$keyToChange=$pKeyAfter;
		$trouve='false';
		
		$pathFileConf = "../application/access/".getValeurIni("nomFichierPwd");
		if (file_exists($pathFileConf)) {
		$fcontents = file($pathFileConf);
		while (list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
			$tab = explode (":", $ligne);
			$cle = array_shift($tab);
			if ($cle != "") {
				if ($cle != $keyToChange) {
					$str .= $ligne;			// On recrée la chaine de caractères avec les users
				}else
				{
					$trouve='true';
					$str .= $pKeyAfter.":".$param."\n";
				}
			}
		}
		if ($trouve=='false')
			$str .= $pKeyAfter.":".$param."\n";
		if ($fp = fopen($pathFileConf, "w-")) {			// On réécrit la chaine dans le fichier
			fwrite($fp,$str);
			fflush($fp);
			fclose($fp);
		}
	}
	}
	
	
	//supprime un user password
	function delUserPassAdmin() {
		$str="";
		$trouve='false';
		
		$pathFileConf = "../application/access/".getValeurIni("nomFichierPwd");
		if (file_exists($pathFileConf)) {
		$fcontents = file($pathFileConf);
		while (list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
			$tab = explode (":", $ligne);
			$utilisateur = array_shift($tab);
			if (strlen ( $utilisateur ) > 0) {
				if ($utilisateur != getValeurIni("loginAdministrateur") ) {
					$str .= str_replace( CHR(13),"", str_replace(CHR(10),"",$ligne) )."\n";						// On recrée la chaine de caractères avec les users
				}
			}
		}
		
		if ($fp = fopen($pathFileConf, "w-")) {			// On réécrit la chaine dans le fichier
			fwrite($fp,$str);
			fflush($fp);
			fclose($fp);
		}
	}
	}
	
	//supprime un user password
	function delUserPassPriv() {
		$str="";
		$trouve='false';
		
		$pathFileConf = "../application/access/".getValeurIni("nomFichierPwd");
		if (file_exists($pathFileConf)) {
		$fcontents = file($pathFileConf);
		while (list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
			$tab = explode (":", $ligne);
			$utilisateur = array_shift($tab);
			if (strlen ( $utilisateur ) > 0 && strlen( $ligne ) > 2 ) {
				if ($utilisateur != getValeurIni("monLogin") ) {
					$str .= str_replace( CHR(13),"", str_replace(CHR(10),"",$ligne) )."\n";						// On recrée la chaine de caractères avec les users
				}
			}
		}
		
		if ($fp = fopen($pathFileConf, "w-")) {			// On réécrit la chaine dans le fichier
			fwrite($fp,$str);
			fflush($fp);
			fclose($fp);
		}
	}
	}
	
	
	
	
		
	// Renvoie une valeur à partir d'une clé dans le fichier d'initialisation
	function getValueConf($pFile,$pKey) {
		$result = "";
		$pathFileConf = "../application/access/".$pFile;
		if (file_exists($pathFileConf)) {
			$fcontents = file($pathFileConf);
			while ( list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
				$tab = explode (":", $ligne);
				$cleTab = array_shift($tab);
				if ($cleTab == $pKey) {
					$result = trim(array_pop($tab));
					break;
				}
			}
			
		} else {
			$result = "FICHIER D INITIALISATION NON TROUVE";
		}
		return $result;
	}
	
	
	//gere l'admin
	function setAdminUser($pUser,$pPass) {
		
		$admin=getValeurIni("loginAdministrateur");
		
		
		
		//maj htpasswd
		setPass($pUser,$pPass);
				
		//maj base
		include("script_connexion_install.php");
		$sql = " DELETE FROM `participants` where `nom`='".$admin."';";
 		$res  = mysql_query( $sql ) or print("ERREUR :".$sql ."<BR>");
 		$sql = " INSERT INTO `participants` ( `nom` , `nbConnexion` , `derniereConnexion` ) VALUES ('".$pUser."', '0', '0000-00-00 00:00:00');";
 		$res  = mysql_query( $sql ) or print("ERREUR :".$sql ."<BR>");
 				
		setKeyConf("loginAdministrateur",$pUser);
		
		// Création du fichier de restriction d'accès dans ACCESS
		$pathFileAdmin = "../application/".getValeurIni("pathAdmin");
		if (file_exists($pathFileAdmin)) {
			$nomFichierAccess = getValeurIni("nomFichierAccess");
			$nomFichierPwd = getValeurIni("nomFichierPwd");
			$pathFileAdmin = "../application/".getValeurIni("pathAdmin")."/$nomFichierAccess";
			if ($fp = fopen($pathFileAdmin, "w-")) {
				if (getValeurIni("evt") == "local")
					$str = "AuthUserFile ".getPathBaseApplication()."application\access\\$nomFichierPwd\n";
				else 
					$str = getValeurIni("htAccessKey")." application/access/$nomFichierPwd\n";
				$str .= "AuthName fotoweb\n";
				$str .= "AuthType Basic\n";
				$str .= "<limit GET>\n";
				$str .= "	require user ".$pUser."\n";
				$str .= "</Limit>";
	
				fwrite($fp,$str);
				fclose($fp);
				echo "Création du fichier de restriction des accès [admin/$nomFichierAccess] : OK'";
			}
		} else {
			echo "Impossible de trouver le répertoire ".getValeurIni("pathAdmin")." pour créer le fichier de restriction des accès.);";
		}
		
		
	// REQUETE DE SELECTION DES PARTICIPANTS
	$queryAll = "SELECT nom FROM participants";
	$resultAll = mysql_query ($queryAll)
		or die ("La requête de sélection des participants a échoué ".$queryAll);
	$public = false;
			
	$strUsers = $pUser." ".getValeurIni("monLogin");
	//recherche du participant à ajouter et on vérifie que public existe
	//on construit en même temps la chaine utilisé plus tard pour le require du htaccess 
	while ($line = mysql_fetch_row($resultAll)) {
		if ($line[0]!='public' && $line[0]!=getValeurIni("monLogin") && $line[0]!=$pUser) 
			$strUsers = $strUsers." ".$line[0];
	}
		//ajout du participant dans /users/htAccess
	if (file_exists("../application/users")) {
			$nomFichierAccess = getValeurIni("nomFichierAccess");
			$nomFichierPwd = getValeurIni("nomFichierPwd");
			$pathFile = "../application/users/$nomFichierAccess";
			if ($fp = fopen($pathFile, "w-")) {
				if (getValeurIni("evt") == "local")
					$str = "AuthUserFile ".getPathBaseApplication()."application\access\\$nomFichierPwd\n";
				else 
					$str = getValeurIni("htAccessKey")." application/access/$nomFichierPwd\n";
				$str .= "AuthName fotoweb\n";
				$str .= "AuthType Basic\n";
				$str .= "<limit GET>\n";
				$str .= "	require user ".$strUsers."\n";
				$str .= "</Limit>";
	
				fwrite($fp,$str);
				fclose($fp);
				echo "Création du fichier de restriction des accès [users/$nomFichierAccess] : OK'";
			}
	} else {
			echo "Impossible de trouver le répertoire /users pour créer le fichier de restriction des accès.'";
	}
		
		
		
	}
	
	
	
	//gere l'admin
	function setPrivUser($pUser,$pPass) {
		
		$monLogin=getValeurIni("monLogin");
					
		//maj htpasswd
		setPass($pUser,$pPass);
		
		//maj base
		include("script_connexion_install.php");
		$sql = " DELETE FROM `participants` where `nom`='".$monLogin."';";
 		$res  = mysql_query( $sql ) or print("ERREUR :".$sql ."<BR>");
		$sql = " INSERT INTO `participants` ( `nom` , `nbConnexion` , `derniereConnexion` ) VALUES ('".$pUser."', '0', '0000-00-00 00:00:00');";
 		$res  = mysql_query( $sql ) or  print("ERREUR :".$sql ." N'existe t-il pas déjà ?<BR>");
 						
 						
 				
				
	// REQUETE DE SELECTION DES PARTICIPANTS
	$queryAll = "SELECT nom FROM participants";
	$resultAll = mysql_query ($queryAll)
		or die ("La requête de sélection des participants a échoué ".$queryAll);
	$public = false;
	
		
	$strUsers = getValeurIni("loginAdministrateur");
	//on construit en même temps la chaine utilisé plus tard pour le require du htaccess 
	while ($line = mysql_fetch_row($resultAll)) {
		if ($line[0]!='public' && $line[0]!=getValeurIni("loginAdministrateur") ) 
			$strUsers = $strUsers." ".$line[0];
	}
		//ajout du participant dans /users/htAccess
	if (file_exists("../application/users")) {
			$nomFichierAccess = getValeurIni("nomFichierAccess");
			$nomFichierPwd = getValeurIni("nomFichierPwd");
			$pathFileAdmin = "../application/".getValeurIni("pathAdmin")."/$nomFichierAccess";
			$pathFile = "../application/users/$nomFichierAccess";
			if ($fp = fopen($pathFile, "w-")) {
				if (getValeurIni("evt") == "local")
					$str = "AuthUserFile ".getPathBaseApplication()."application\access\\$nomFichierPwd\n";
				else 
					$str = getValeurIni("htAccessKey")." application/access/$nomFichierPwd\n";
				$str .= "AuthName fotoweb\n";
				$str .= "AuthType Basic\n";
				$str .= "<limit GET>\n";
				$str .= "	require user ".$strUsers."\n";
				$str .= "</Limit>";
	
				fwrite($fp,$str);
				fclose($fp);
				echo "Création du fichier de restriction des accès [users/$nomFichierAccess] : OK'";
			}
			

			
	} else {
			echo "Impossible de trouver le répertoire /users pour créer le fichier de restriction des accès.'";
	}
	
	// ---- marker
	//ajout du participant dans /users/htAccess
	if (file_exists("../marker")) {
			$nomFichierAccess = getValeurIni("nomFichierAccess");
			$nomFichierPwd = getValeurIni("nomFichierPwd");
			$pathFileAdmin = "../application/".getValeurIni("pathAdmin")."/$nomFichierAccess";
			$pathFile = "../marker/$nomFichierAccess";
			if ($fp = fopen($pathFile, "w-")) {
				if (getValeurIni("evt") == "local")
					$str = "AuthUserFile ".getPathBaseApplication()."application\access\\$nomFichierPwd\n";
				else 
					$str = getValeurIni("htAccessKey")." application/access/$nomFichierPwd\n";
				$str .= "AuthName fotoweb\n";
				$str .= "AuthType Basic\n";
				$str .= "<limit GET>\n";
				$str .= "	require user ".getValeurIni("monLogin")." ".getValeurIni("loginAdministrateur")."\n";
				$str .= "</Limit>";
	
				fwrite($fp,$str);
				fclose($fp);
				echo "<br>Création du fichier de restriction des accès dans marker [users/$nomFichierAccess] : OK'";
	                       }
	}else {
	echo "Impossible de trouver le répertoire /marker pour créer le fichier de restriction des accès.'";
	}
	// ----	marker	
		
		
	}
	
	
	
	// Renvoie une valeur à partir d'une clé dans le fichier d'initialisation
	function getValeurIni($cle) {
		$result = "";
		if (file_exists('../application/access/fotoweb.conf')) {
			$fcontents = file('../application/access/fotoweb.conf');
			while ( list( $numero_ligne, $ligne ) = each( $fcontents ) ) {
				$tab = explode (":", $ligne);
				$cleTab = array_shift($tab);
				if ($cleTab == $cle) {
					$result = trim(array_pop($tab));
					break;
				}
			}
			if ($result == "") {
				$result = "<clé non trouvée>";
			}
		} else {
			$result = "FICHIER D INITIALISATION NON TROUVE";
		}
		return $result;
	}
	
	// Donne le chemin d'accès absolu du site sur le serveur
	function getPathBaseApplication() {
		$path = realpath("../index.php");
		$result = substr($path,0,(strlen($path) - 9));
		return $result;
	}
	
	//modifie un user password
	function createTables() { 
include("script_connexion_install.php");		
 $sql = " CREATE TABLE `image` (`id` int(11) NOT NULL auto_increment,`nom` varchar(40) NOT NULL default '',`codeTheme` char(3) NOT NULL default '',`prive` char(1) NOT NULL default '0',`dateOriginale` datetime default NULL,`bestof` tinyint(4) default NULL, PRIMARY KEY  (`id`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
echo "Table image ok <BR>";
 $sql = " CREATE TABLE `livredor` (`hostname` varchar(50) NOT NULL default '',`ip` varchar(14) default NULL,`login` varchar(30) NOT NULL default '',`idMessage` int(11) NOT NULL auto_increment,`nom` varchar(32) NOT NULL default '',`date` datetime NOT NULL default '0000-00-00 00:00:00',`message` text NOT NULL,`lieu` varchar(80) default NULL,`email` varchar(60) default NULL,PRIMARY KEY  (`idMessage`),KEY `login` (`login`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
 echo "Table livredor ok <BR>";
 $sql = " CREATE TABLE `participants` (`nom` varchar(30) NOT NULL default '',`nbConnexion` int(4) NOT NULL default '0',`derniereConnexion` datetime NOT NULL default '0000-00-00 00:00:00',PRIMARY KEY  (`nom`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
 $sql = " CREATE TABLE `relationthemepersonne` (`nomPers` varchar(32) NOT NULL default '',`codeTheme` int(11) NOT NULL default '0',`niveau` int(11) NOT NULL default '1',PRIMARY KEY  (`nomPers`,`codeTheme`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
 echo "Table participants ok <BR>";
 $sql = " CREATE TABLE `statclick` (`nom` varchar(40) NOT NULL default '',`login` varchar(40) NOT NULL default '',`repertoire` varchar(40) NOT NULL default '',`date` datetime default NULL,`nbclick` int(11) NOT NULL default '0',PRIMARY KEY  (`nom`,`login`,`repertoire`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
 echo "Table statclick ok <BR>";
 $sql = " CREATE TABLE `theme` (`codeTheme` int(11) NOT NULL default '0',`nomTheme` varchar(75) NOT NULL default '',`commentaire` varchar(150) NOT NULL default '',`repertoire` varchar(50) NOT NULL default '',`dateCreation` date NOT NULL default '0000-00-00',`panoramique` tinyint(4) NOT NULL default '0',UNIQUE KEY `repertoire` (`repertoire`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
 echo "Table theme ok <BR>";
 $sql = " CREATE TABLE `visiteurs` (`agent` varchar(100) default NULL,`referer` varchar(255) default NULL,`hostname` varchar(50) NOT NULL default '',`date` datetime default NULL,`ip` varchar(14) default NULL,`login` varchar(30) NOT NULL default '',`nbvisit` smallint(6) NOT NULL default '1',`resolution` varchar(9) default NULL,`idphoto` int(11) default NULL,KEY `login` (`login`)) TYPE=MyISAM ";
 $res  = mysql_query( $sql ) or print("ERREUR (normale si la table a été crée une fois) :".$sql ."<BR>"); 
 echo "Table visiteurs ok <BR>";

 $sql = " INSERT INTO `participants` ( `nom` , `nbConnexion` , `derniereConnexion` ) VALUES ('public', 0, NOW());";
 $res  = mysql_query( $sql ) or print("ERREUR :".$sql ."<BR>"); 
 $sql = " INSERT INTO `participants` ( `nom` , `nbConnexion` , `derniereConnexion` ) VALUES ('".getValeurIni("loginAdministrateur")."', '0', '0000-00-00 00:00:00');";
 $res  = mysql_query( $sql ) or print("ERREUR :".$sql ."<BR>"); 
 $sql = " INSERT INTO `participants` ( `nom` , `nbConnexion` , `derniereConnexion` ) VALUES ('".getValeurIni("monLogin")."', '0', '0000-00-00 00:00:00');";
 $res  = mysql_query( $sql ) or print("ERREUR :".$sql ."<BR>"); 
 
 
	}
	
	
?>