Php file based authentication

Some small sites does not have need for database back-end to store data. But security is still important either the site is big or small. They may have a requirement to authenticate some folder or file and want to set access credentials for that. We can handle such case by using file based authentication using PHP.

To create the file based authentication, first generate username and password set by using php password encryption technique md5(). The md5() function is commonly used to encrypt a string.
You can generate the username and password on click here.

Create a text file name "auth.txt" and paste the generated username and password set as it is in the text file. Now, create a login form and copy and paste these code to authenticate the username and password from a text file.




<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" />
<div class="wrapper" style="width: 30%; margin: 0 auto;">
    <form class="form-signin" action='#' method="post">       
      <h2 class="form-signin-heading">User Login</h2><br/>
      <input type="text" class="form-control" name="username" placeholder="username" required="" autofocus="" /><br/>
      <input type="password" class="form-control" name="password" placeholder="Password" required=""/><br/>
      <button class="btn btn-small btn-primary btn-block" type="submit">Login</button>  
    </form>
    <?php 
    function check_password($username, $password){
        $pwd_file = 'auth.txt';
        if(!$fh = fopen($pwd_file, "r")) {die("<p>Could not open password file");}
        $match = 0;
        $pwd = md5($password);
        while(!feof($fh)) {
          $line = fgets($fh, 4096);
          $user_pass = explode(":", $line);
          if($user_pass[0] == $username) {
            if(rtrim($user_pass[1]) == $pwd) {
              $match = 1;
              break;
            }
          }
          $match = 2; 
        }
        if($match == '1') {
           echo "<b>Login Success!</b>";
        } 
        if($match == '2') {
           echo "<b>Login Failed!</b>";
        } 
        fclose($fh);
    }
    if($_POST['username']) {
        check_password($_POST['username'], $_POST['password']);
    }
    ?>
</div>   

In the above code, we have used the fopen() function to open the text file and encrypted the entered password using the md5() function. We have matched the encryted password with the stored password. If both passwords are same, it prints success message.





Related Articles

Preventing Cross Site Request Forgeries(CSRF) in PHP
PHP code to send email using SMTP
Simple pagination in PHP
Simple PHP File Cache
PHP Connection and File Handling on FTP Server
Sending form data to an email using PHP
Recover forgot password using PHP and MySQL
How to display PDF file in PHP from database
How to read CSV file in PHP and store in MySQL
Create And Download Word Document in PHP




Read more articles


General Knowledge



Learn Popular Language