File "htaccess_editor.php"

Full Path: /home/analogde/www/JAVA/system/authentication/htaccess_editor.php
File size: 1.71 KB
MIME-type: text/x-php
Charset: utf-8

<?php

require($GC_other_Path . "/Passwd.php");

class htaccessEditor{

	var $users = Array();
	var $passwords = Array();

	var $filename = "";
	
	var $filePasswd;
	
	function htaccessEditor($filename){
		if($filename == "")
			die("Filename is empty!");

		if(!file_exists($filename))
			die("File '$filename' not found!");
		

		$this->filename = $filename;
		$this->filePasswd = new File_Passwd();
		
		$lines = file($filename);
		
		foreach($lines as $line){
			$values = explode(":", $line);

			array_push($this->users, trim($values[0]));
			array_push($this->passwords, trim($values[1]));
		}
	}
	
	function addUser($username, $password){
		for($u = 0; $u < sizeof($this->users); $u++)
			if($this->users[$u] == $username){
				$this->passwords[$u] = $this->_getPassword($password);
				return true;
			}
		
		array_push($this->users, $username);
		array_push($this->passwords, $this->_getPassword($password));
		return true;
	}
	
	function deleteUser($username){
		$selIndex = -1;
				
		for($u = 0; $u < sizeof($this->users); $u++)
			if($this->users[$u] == $username)
				$selIndex = $u;

		if($selIndex > -1){
			unset($this->users[$selIndex]);
			unset($this->passwords[$selIndex]);
		}else{
			return false;
		}
	}
	
	function _getPassword($password){
		if(strpos(strToUpper(PHP_OS), "WIN") === false){
#			return crypt($password, substr($password, 0, 2));
			return $this->filePasswd->crypt_des($password);
		}else{
			return $this->filePasswd->crypt_apr_md5($password);
		}
	}
	
	function writeFile(){
		$content = "";
		
		for($u = 0; $u < sizeof($this->users); $u++)
			$content .= $this->users[$u] . ":" . $this->passwords[$u] . "\n";
		
		$handle = fopen($this->filename, "w");
		fwrite($handle, $content);
		fclose($handle);
	}
}

?>