
LoginDe bedoeling van dit script is een simpele manier te laten zien, hoe je een protected area maakt op je site. Een protected area houdt in dat je op dat deel alleen mensen wilt laten komen die daar toestemming voor hebben. Om toestemming te krijgen zijn allerlei manieren te bedenken. Hier ga ik er vanuit dat de bezoeker zichzelf niet kan registreren.
Allereerst dient er een tabel te komen in de database met de nodige gegevens. Ik heb daarvoor 3 velden minimaal nodig. In onderstaand voorbeeld staat de code voor een tabel.
CREATE TABLE 'User' (
'ID' INT Not Null Auto_Increment Primary Key,
'gebruiker' Varchar (30) Not Null,
'ww' Varchar(6) Not Null
);
Nu moeten de pagina's gemaakt worden. Aan de stijl zal ik nu niet veel aandacht besteden. Mocht je daar problemen mee hebben, dan kan ik in de toekomst wellicht een aangeklede versie neerzetten. Allereerst komt er een pagina om in te loggen.
login.php
<h1>Inloggen:</h1>
<form method="post" action="controle.php">
Gebruikersnaam: <input type="text" name="gebr" size="20" maxlength="30"><br>
Wachtwoord: <input type="password" name="ww" size="20" maxlength="6"><br>
<input type="submit" name="submit" value="login...">
</form>
De pagina voor de gegevens van de database:
verbinding.php
<?php
$dbhost = "localhost";
$db = "database";
$username = "gebruiker";
$dbww = "wachtwoord";
mysql_connect("$dbhost","$username","$dbww");
mysql_select_db("$db");
?>
Dit was vrij simpel. Een klein formulier, verder nog geen code. Nu moet de code worden bedacht voor het controleren van de invoer.
controle.php
<?php
session_start();
if (!empty($_POST["submit"])) {
include ("verbinding.php");
$query = "Select gebruiker, ww From User Where gebruiker=' ".$_POST["gebr"]." '
AND ww=' ".$_POST["ww"]." ' ";
$result = mysql_query($query) or die ("Fout opgetreden met uitvoeren query");
if (mysql_num_rows($result) > 0) {
$user = $_POST["gebr"];
$ww = &_POST["ww"];
session_register("user");
session_register["ww"];
header("Location: pagina.php");
exit();
} else {
$txt = "Geen geldige gebruikersnaam en/of wachtwoord. Je kunt het <a href=\"login.php\">hier opnieuw proberen</a>
die($txt);
} else {
header("Location: login.php"); }
De pagina waarin de controle wordt uitgevoerd is nu gereed. Als alles klopt, dan komt de bezoeker uit op de pagina pagina.php. Gaat er iets fout met de invoer, dan kan de bezoeker terug naar de inlog pagina. De gegevens van de bezoeker worden geplaatst in een sessie. Wordt de pagina rechtstreeks aangeroepen door een bezoeker, dan wordt deze onmiddellijk teruggestuurd naar login.php. Laatste zorg is nu de pagina.php.
loggeg.php
<?php session_start();
if (!isset(&_SESSION["user"])) {
$txt = "Geen geldige gebruikersnaam en/of wachtwoord. Je kunt het <a href=\"login.php\">hier opnieuw proberen</a>
echo($txt);
exit(); }
?>
pagina.php
<?php include("loggeg.php"); ?>
<html>
etc.
Alleen nog een logout pagina en de cirkel is rond.
logout.php
session_start();
session_unset();
session_destroy();
<p>U bent nu uitgelogd</p>
Om te zorgen dat je meerdere pagina's kunt beveiligen, maak ik een include bestand aan waarin de gegevens van de session gevraagd worden. Als de bezoeker niet is ingelogd, bestaat er geen session en kan de bezoeker de site nooit bekijken. Het is redelijk veilig te noemen, maar echt waterdicht is het niet. Verder kan er heelveel verbeterd worden aan dit script. Voorlopig volsta ik met dit script. Mocht je vragen hebben over dit script, neem dan contact op met de webmaster.
|