Registreren

In deze tutorial zal het niet draaien om de layout, maar de basisopzet van de registratie pagina is als volgt:

registreren.php

<?php include("header.php"); ?>
<form action="registreren.php" method="post">
 <table>
  <tr>
   <td>Gebruikersnaam</td>
   <td><input type="text" name="user" /></td>
  </tr>
  <tr>
   <td>Wachtwoord</td>
   <td><input type="password" name="password" /></tr>
  </tr>
  <tr>
   <td />
   <td><input type="submit" name="Aanmelden" />
  </tr>
 </table>
</form>
<?php include("footer.php"); ?>

header.php

<?php
//MySQL connectie
include("config.php");
//Nog aan te passen, een login- en admincheck:
$bLogin = false;
$bAdmin = false;
?>
<html>
<head>
</head>
<body>
 <strong>Menu</strong><br />
 <ul>
  <li><a href="index.php">Home</a>
<?php if(!$bLogin) { ?>
  <li><a href="login.php">Inloggen</a></li>
  <li><a href="registeren.php">Registreren</a></li>
<?php }
if($bAdmin) { ?>
  <li><a href="admin.php">Admin</a></li>
<?php } ?>
 </ul>

footer.php

 </body>
</html>

NB: Het is over het algemeen handig een header en footer te maken, zodat je een hoop code niet elke keer weer opnieuw hoeft te schrijven.

Gebruiker toevoegen in database

Zodra de bezoeker op Aanmelden heeft gedrukt is het de bedoeling dat we de gebruiker een plek geven in de database. Voordat dit gebeurt moeten er eerst wat controlles worden gedaan, zoals kijken of de gebruikersnaam niet al bestaat en of deze niet te kort is.Voeg na "<?php include("header.php"); ?>" het volgende toe:

<h1>Registeren</h1>
<?php
//De gebruiker heeft op de knop gedrukt
if(isset($_POST['user']))
{
    //In deze array slaan we alle fouten op
    $aError = array();
    
    //Voeg dit toe om MySQL-injecties tegen te gaan.
    $sUser = mysql_real_escape_string($_POST['user']);
    
    //Met deze query kijk je hoeveel rijen er zijn met deze gebruikersnaam
    $sSQL = 'SELECT COUNT(*) FROM `users` WHERE `user` = \'' . $sUser .'\'';
    $rsSQL = mysql_query($sSQL) or die('Er is een MySQL fout opgetreden');
    $iUsers = mysql_result($rsSQL, 0, 0);
    
    if($iUsers > 0)
    {
        $aError[] = 'Deze gebruikersnaam is al in gebruik';
    }
    
    //Controleer of de gebruikersnaam niet te kort is
    if(strlen($_POST['user']) < 4)
    {
        $aError[] = 'Je gebruikersnaam is te kort. Zorg ervoor dat deze minimaal 4 tekens is.';
    }
    
    if(strlen($_POST['password']) < 4)
    {
        $aError[] = 'Je wachtwoord is te kort';
    }
    
    //Als de array leeg is, is alles goed gegaan.
    if(count($aError) == 0)
    {
        //Versleutel het wachtwoord met SHA1, dit geeft een soort code
        //Deze code (een "hash") is niet om te draaien
        //Dus als iemand je database kraakt, zijn de wachtwoorden onleesbaar
        $sPass = sha1($_POST['password']);
        $iTime = time();
        
        //De query die we straks uitvoeren
        $sSQL = 'INSERT INTO `users` (`user`, `password`, `registered`) VALUES (\'' . $sUser .'\', \'' . $sPass .'\', \'' . $iTime .'\')';
        
        //De @ voorkomt foutmeldingen
        //Voer de query uit:
        @mysql_query($sSQL);
        if(!mysql_error())
        {
            echo 'Je bent aangemeld, je kunt nu direct inloggen';
        }
        else
        {
            echo 'Er is een MySQL fout opgetreden bij het aanmelden.';
        }
    }
    else
    {
        echo 'Er zijn verschillende fouten opgetreden:';
        echo '<ul>';
        foreach($aError as $sError)
        {
            echo '<li>' . $sError .'</li>';
        }
        echo '</ul>';
    }
}
?>

Andere delen

  1. Inleiding
  2. De database opzetten
  3. Registreren
  4. Inloggen
Copyright © 2011 - Php-leren.nl