Happy Codings - Programming Code Examples
Html Css Web Design Sample Codes CPlusPlus Programming Sample Codes JavaScript Programming Sample Codes C Programming Sample Codes CSharp Programming Sample Codes Java Programming Sample Codes Php Programming Sample Codes Visual Basic Programming Sample Codes


Php Programming Code Examples

Php > File Manipulation Code Examples

Class that allows the PHP developer to create and manage UNIX like

Class that allows the PHP developer to create and manage UNIX like password files suitable for use as Apache authentication password files. <? Function AccountCryptPassword($password,$salt) { if($salt== "") { srand(time()); $random=rand(); $itoa64= "./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; $salt=substr($itoa64,$random % 64,1).substr($itoa64,($random/64) % 64,1); } return(crypt($password,$salt)); } class access_accounts { var $password_file= ""; var $accounts=array(); var $convert_to_lower_case=0; Function ReadAccounts($password_file) { global $php_errormsg; $passwd=@File($password_file); if(GetType($passwd)!= "array") return( "can not read password file \"$password_file\" ($php_errormsg)"); for($account=0,$accounts=array();$account<count($passwd);$account++) { if(($line=strtok($passwd[$account], "\n"))== "") $line=$passwd[$account]; if(($user=strtok($line, ":"))== "") return( "invalid user in line $account of password file \"$password_file\""); if($this->convert_to_lower_case) $user=strtolower($user); $accounts[$account][ "user"]= "$user"; $accounts[$account][ "password"]=strtok( ":"); } $this->accounts=$accounts; $this->password_file=$password_file; return( ""); } Function LookupAccount($user) { if($this->convert_to_lower_case) $user=strtolower($user); for($account=0;$account<count($this->accounts);$account++) { if($this->accounts[$account][ "user"]==$user) break; } return($account); } Function CheckPassword($user,$password) { if($user== "") return( "empty user"); if($password== "") return( "empty password"); if($this->convert_to_lower_case) { $user=strtolower($user); $password=strtolower($password); } if(($account=$this->LookupAccount($user))<count($this->accounts)) { if($this->accounts[$account][ "password"]== "*") return( "account was deleted"); if($this->accounts[$account][ "password"]==AccountCryptPassword($password,substr($this->accounts[$account] [ "password"],0,2))) return( ""); else return( "password does not match"); } return( "unknown user"); } Function AddAccessAccount($user,$password) { if($this->convert_to_lower_case) { $user=strtolower($user); $password=strtolower($password); } $account=count($this->accounts); $this->accounts[$account][ "user"]=$user; $this->accounts[$account][ "password"]=AccountCryptPassword($password, ""); return($account); } Function SaveAccessAccounts() { global $php_errormsg; if($this->password_file== "") return( "it was not defined the password file"); if(($file=@fopen($this->password_file, "w"))==0) return( "can not open password file \"$password_file\" ($php_errormsg)"); for($account=0;$account<count($this->accounts);$account++) { $user=$this->accounts[$account][ "user"]; if($this->convert_to_lower_case) $user=strtolower($user); if(fputs($file,sprintf( "%s:%s\n",$user,$this->accounts[$account][ "password"]))==0) return( "can not write to password file \"$password_file\" ($php_errormsg)"); } fclose($file); return( ""); } Function DeleteAccount($user) { if($this->convert_to_lower_case) $user=strtolower($user); if(($account=$this->LookupAccount($user))<count($this->accounts)) { if($this->accounts[$account][ "password"]!= "*") { $this->accounts[$account][ "password"]= "*"; return( ""); } else return( "account was already deleted"); } return( "unknown user"); } Function ModifyAccessAccount($user,$password) { if($this->convert_to_lower_case) { $user=strtolower($user); $password=strtolower($password); } if(($account=$this->LookupAccount($user))>=count($this->accounts)) return( "unknown user"); $this->accounts[$account][ "password"]=AccountCryptPassword($password, ""); return( ""); } }; ?>