Easy login script without database

后端 未结 10 1925
说谎
说谎 2020-12-04 20:17

How do I create an easy login script that does not require a database. I would like it to be safe.

Alright, what about this script, i just made it by my knowledge in

相关标签:
10条回答
  • 2020-12-04 21:11

    If you don't have a database, where will the PERMANENT record of your users' login data be stored? Sure, while the user is logged in, the minimal user information required for your site to work can be stored in a session or cookie. But after they log out, then what? The session goes away, the cookie can be hacked.

    So your user comes back to your site. He tries to log in. What trustworthy thing does your site compare his login info to?

    0 讨论(0)
  • 2020-12-04 21:13

    FacebookConnect or OpenID are two great options.

    Basically, your users login to other sites they are already members of (Facebook, or Google), and then you get confirmation from that site telling you the user is trustworthy - start a session, and they're logged in. No database needed (unless you want to associate more data to their account).

    0 讨论(0)
  • 2020-12-04 21:13

    I would use a two file setup like this:

    index.php

    <?php 
    session_start(); 
    
    define('DS',  TRUE); // used to protect includes
    define('USERNAME', $_SESSION['username']);
    define('SELF',  $_SERVER['PHP_SELF'] );
    
    if (!USERNAME or isset($_GET['logout']))
     include('login.php');
    
    // everything below will show after correct login 
    ?>
    

    login.php

    <?php defined('DS') OR die('No direct access allowed.');
    
    $users = array(
     "user" => "userpass"
    );
    
    if(isset($_GET['logout'])) {
        $_SESSION['username'] = '';
        header('Location:  ' . $_SERVER['PHP_SELF']);
    }
    
    if(isset($_POST['username'])) {
        if($users[$_POST['username']] !== NULL && $users[$_POST['username']] == $_POST['password']) {
      $_SESSION['username'] = $_POST['username'];
      header('Location:  ' . $_SERVER['PHP_SELF']);
        }else {
            //invalid login
      echo "<p>error logging in</p>";
        }
    }
    
    echo '<form method="post" action="'.SELF.'">
      <h2>Login</h2>
      <p><label for="username">Username</label> <input type="text" id="username" name="username" value="" /></p>
      <p><label for="password">Password</label> <input type="password" id="password" name="password" value="" /></p>
      <p><input type="submit" name="submit" value="Login" class="button"/></p>
      </form>';
    exit; 
    ?>
    
    0 讨论(0)
  • 2020-12-04 21:15

    ***LOGIN script that doesnt link to a database or external file. Good for a global password -

    Place on Login form page - place this at the top of the login page - above everything else***

    <?php
    
    if(isset($_POST['Login'])){
    
    if(strtolower($_POST["username"])=="ChangeThis" && $_POST["password"]=="ChangeThis"){
    session_start();
    $_SESSION['logged_in'] = TRUE;
    header("Location: ./YourPageAfterLogin.php");
    
    }else {
    $error= "Login failed !";
    }
    }
    //print"version3<br>";
    //print"username=".$_POST["username"]."<br>";
    //print"password=".$_POST["username"];
    ?>
    

    *Login on following pages - Place this at the top of every page that needs to be protected by login. this checks the session and if a user name and password has *

    <?php
    session_start();
    if(!isset($_SESSION['logged_in']) OR $_SESSION['logged_in'] != TRUE){
    
    header("Location: ./YourLoginPage.php");
    }
    ?>
    
    0 讨论(0)
提交回复
热议问题