Hjælp til tilpasning af login system
JEg har fundet et lille logind system som en bruger her på eksperten har lavet.Er der nogen der kan hjælpe mig med at tilpasse sciptet til at tjekke brugere op mod en database? - Jeg kan ikke rigtigt gennemskue hvor og hvordan jeg skal indsætte db kaldet
Scriptet:
<?php
/**
* Simpleauth loginsystem v.1.0 [1.jul.2004]
* af troels@kyberfabrikken.dk
*
* Copyright 2004, troels knak-nielsen
* Dette script er licenseret under public domain
*
* @Usage
*
* Du bruger simpleauth ved at inkludere dette script i toppen af dine sider
* For at beskytte en side (kræve at brugeren logger ind), kalder du blot funktionen
* authenticate_user();
*
* Scriptet kan konfigureres til at køre i to forskellige "modes" - SESSION eller SERVER.
* Hvis du bruger SESSION mode, så SKAL DU KALDE session_start() i toppen af ALLE DINE SIDER.
* Og dette skal gøres INDEN DU BRUGER authenticate_user()
*
* Eksempel 1. Brug af simpleauth i SESSION mode
* <code>
* <?php
* require_once('simpleauth.php');
* session_start();
* authenticate_user();
* // Beskyttet kode herunder
* ?>
* </code>
*
* Eksempel 2. Brug af simpleauth i SERVER mode
* <code>
* <?php
* require_once('simpleauth.php');
* authenticate_user();
* // Beskyttet kode herunder
* ?>
* </code>
*
*/
/**
* Konfiguration
*
* Her konfigurerer vi auth systemet til hvordan den skal bede om login.
* Du kan sætte AUTHENTICATE_MODE til enten SERVER eller SESSION
* Hvis du bruger SESSION skal du huske at kalde session_start() inden du kalder authenticate_user()
* Hvis du vil bruge SERVER skal din webserver være en apache og være konfigureret
* korrekt. (99% af alle servere passer på dette)
*/
// define('AUTHENTICATE_MODE', 'SERVER');
define('AUTHENTICATE_MODE', 'SESSION');
/**
* Denne funktion checker om en bruger findes, og om password for denne er korrekt.
* Du kan erstatte funktionen med noget kode, der tester imod hvor nu end du har
* dine brugerdata liggende, så som en database etc.
*
* @returns boolean Sand hvis bruger+pass er korrekt
*
*/
function validate_user($user, $password)
{
return ($user == "admin") && ($password == "secret");
}
function prompt_login()
{
if (AUTHENTICATE_MODE == 'SESSION') {
echo "<html>";
echo "<head></head>";
echo "<body>";
echo "<h1>LOG IN</h1>";
echo "<form method='POST' action='".$_SERVER['PHP_SELF']."'>";
echo "<b>user : </b><input type='text' name='MY_AUTH_USER' value='" . (isset($_SESSION['MY_AUTH_USER']) ? $_SESSION['MY_AUTH_USER'] : '') . "' /><br />";
echo "<b>pass : </b><input type='password' name='MY_AUTH_PW' /><br />";
echo "<input type='submit' />";
echo "</form>";
echo "</body>";
echo "</html>";
exit;
}
if (AUTHENTICATE_MODE == 'SERVER') {
header('WWW-Authenticate: Basic realm="restricted"');
header('HTTP/1.0 401 Unauthorized');
echo "HTTP/1.0 401 Unauthorized";
exit;
}
trigger_error("AUTHENTICATE_MODE has not been set. Valid values are SESSION, SERVER", E_USER_ERROR);
}
/**
* Denne funktion checker, om en bruger er logget ind.
*
* @param $must_validate sæt til true, hvis brugeren skal være logget ind for at få adgang,
* eller til false, hvis alle har adgang.
*/
function authenticate_user($must_validate=true)
{
if (isset($_POST['MY_AUTH_USER']) && isset($_POST['MY_AUTH_PW'])) {
if (function_exists('session_regenerate_id')) {
session_regenerate_id();
}
$_SESSION['MY_AUTH_USER'] = $_POST['MY_AUTH_USER'];
$_SESSION['MY_AUTH_PW'] = $_POST['MY_AUTH_PW'];
header("Location: " . $_SERVER['PHP_SELF']);
exit;
}
$is_logged_in = false;
if (isset($_SERVER['PHP_AUTH_USER']) && !isset($_SESSION['MY_AUTH_USER'])) {
$GLOBALS['MY_AUTH_USER'] = $_SERVER['PHP_AUTH_USER'];
$GLOBALS['MY_AUTH_PW'] = $_SERVER['PHP_AUTH_PW'];
} else if (isset($_SESSION['MY_AUTH_USER']) && isset($_SESSION['MY_AUTH_PW'])) {
$GLOBALS['MY_AUTH_USER'] = $_SESSION['MY_AUTH_USER'];
$GLOBALS['MY_AUTH_PW'] = $_SESSION['MY_AUTH_PW'];
}
if (isset($GLOBALS['MY_AUTH_USER'])) {
$is_logged_in = validate_user($GLOBALS['MY_AUTH_USER'], $GLOBALS['MY_AUTH_PW']);
}
if ($must_validate && !$is_logged_in) {
prompt_login();
}
}
?>
