⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pwfile.php

📁 phpbased firewall for linux.
💻 PHP
字号:
<?

// pwfile.req


class PwFile {

    var $fp; // filepointer
    var $filename;
	var $error;
    

    
    function PwFile($filename) // constructor
    {
        $this->fp = @fopen ($filename,"r+");
		//echo $filename;
        $this->filename = $filename;
		if (!$this->fp) $this->error=-1;
    }
       
    function existsUser ($usr_ID)
    {
    rewind($this->fp); //rewind filepointer
    while (feof($this->fp) == 0) 
    {
        $line = chop(fgets($this->fp,1000));  //read line from file
              $arr = split(":", $line);  //slit at ':'
              if ($arr[0] == $usr_ID) 
              {
              return 1; // username found
              }
              else 
              {
              return 0;  // username not found
              }
          }
    }
    
    function getFileSize() 
    {
        return (filesize($this->filename));
    }

    function write_temp ($contents)
    {
        //echo "<pre>$contents</pre>";
      $temp_filename = tempnam ("/tmp", "php_");
      //echo "<br>$temp_filename<br>";
         $temp_fp = fopen($temp_filename, w);
         fwrite($temp_fp, $contents);
         fclose($temp_fp);
         fclose($this->fp);
         copy ($temp_filename, $this->filename);
         $this->fp = fopen($this->filename, "r+");
         //unlink($temp_filename);
    }
     
    function addUser ($usr_ID, $usr_passwd)
    {
    rewind($this->fp);
    $contents = fread($this->fp, $this->getFileSize());
         //echo "<pre>bevor $contents</pre>";
         $contents .= "$usr_ID:".crypt($usr_passwd)."\n";
         //echo "<pre>danach $contents</pre>";
         $this->write_temp($contents);
    }
    
    function deleteUser ($usr_ID) 
    {
    $contents = "";
    rewind($this->fp);
    while (feof($this->fp) == 0) 
    {
        $line = "";
        $line = chop(fgets($this->fp,1000)); 
              $arr = split(":", $line); 
              if ($arr[0] != $usr_ID)
              {
                  //echo $arr[0] ." ist nicht gleich ". $usr_ID;
              $contents .= $line;// . "n";
              }
          }
          //echo "<hr>$contents<hr>";
          $contents = chop ($contents); 
          $contents .= "\n"; // kind a tricky
          $this->write_temp($contents);
          
    }
    
    function updateUser ($usr_ID, $usr_passwd) 
    {
        $this->deleteUser($usr_ID);
        $this->addUser($usr_ID,$usr_passwd);
    }
}
?> 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -