Scripts

Account systeem (zonder regustreren)

Vergeet niet dit script naar jouw website instellingen aan te passen! DB: CREATE TABLE `accounts` ( `gebruikersnaam` VARCHAR(20) NOT NULL, `wachtwoord` VARCHAR(20) NOT NULL, PRIMARY KEY (`gebruikersnaam`) ); Bron: Boek WEBDESIGN MET PHP 5 door Ward van der Put van Easy Computing.

account-systeem-zonder-regustreren
[code]
<?php
// Gebruikersnaam en wachtwoord controleren:
if (isset($_REQUEST['gn'])) {

    // Gebruikersnaam lezen uit een formulier of cookie:
    if (isset($_POST['gn'])) {
        $gebruikersnaam = $_POST['gn'];
    } elseif (isset($_COOKIE['gn'])) {
        $gebruikersnaam = $_COOKIE['gn'];
    } else {
        inloggen();
    }
    $gebruikersnaam = trim(strip_tags($gebruikersnaam));

    // Wachtwoord lezen uit een formulier of cookie:
    if (isset($_POST['ww'])) {
        $wachtwoord = $_POST['ww'];
    } elseif (isset($_COOKIE['ww'])) {
        $wachtwoord = $_COOKIE['ww'];
    } else {
        inloggen($gebruikersnaam);
    }
    $wachtwoord = trim(strip_tags($wachtwoord));

    /**
     * Vijf beslissingsregels om de databasetoegang te minimaliseren:
     * (1) de gebruikersnaam moet minimaal 7 tekens lang zijn,
     * (2) de gebruikersnaam mag maximaal 20 tekens lang zijn,
     * (3) het wachtwoord moet minimaal 12 tekens lang zijn,
     * (4) het wachtwoord mag maximaal 20 tekens lang zijn en
     * (5) de gebruikersnaam mag niet gelijk zijn aan het wachtwoord:
     */
    if ((strlen($gebruikersnaam) < 7) or (strlen($gebruikersnaam) > 20) 
    or (strlen($wachtwoord) < 12) or (strlen($wachtwoord) > 20)
    or ($gebruikersnaam == $wachtwoord)) {
        inloggen($gebruikersnaam);
    } else {
        // MySQL-selectiequery:
        $sql  = "SELECT `gebruikersnaam`, `wachtwoord` FROM `accounts` ";
        $sql .= "WHERE `gebruikersnaam` = \"" . $gebruikersnaam . "\" ";
        $sql .= "AND `wachtwoord` = \"" . $wachtwoord . "\" ";
        // Databaseverbinding openen en query uitvoeren:
        require_once('mysql_connect.inc.php');
        $verbinding = mysql_connect(MYSQL_SERVER, MYSQL_GEBRUIKERSNAAM, MYSQL_WACHTWOORD) or die(mysql_error());
        mysql_select_db("test") or die(mysql_error());
        $resultaat = mysql_query($sql) or die(mysql_error());
        if (mysql_num_rows($resultaat) == 1) {
            $record = mysql_fetch_assoc($resultaat);
            // Resultaatset vrijgeven en databaseverbinding sluiten:
            mysql_free_result($resultaat);
            mysql_close($verbinding);
            if (($record["gebruikersnaam"] != $gebruikersnaam) 
            or ($record["wachtwoord"] != $wachtwoord)) {
                inloggen($gebruikersnaam);
            } else {
                // Cookie verloopt na 30 dagen = 2592000 seconden:
                $verloopt_op = time() + 2592000;
                // Gebruikersnaam opslaan in een cookie:
                setcookie("gn", $gebruikersnaam, $verloopt_op);
                // Wachtwoord naar keuze opslaan in een cookie:
                if (isset($_POST['wo'])) {
                    if ($_POST['wo'] == 1) {
                        setcookie("ww", $wachtwoord, $verloopt_op);
                    }
                }
            }
        } else {
            // Resultaatset vrijgeven en databaseverbinding sluiten:
            mysql_free_result($resultaat);
            mysql_close($verbinding);
            inloggen($gebruikersnaam);
        }
    }
} else {
    inloggen();
}

// Webpagina met een formulier en instructies weergeven:
function inloggen($gebruikersnaam = '')
{
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="nl">
<head>
<meta http-equiv="Content-Language" content="nl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Inloggen</title>
<link href="winxpvg.css" rel="stylesheet" type="text/css">
</head>
<body lang="nl">
<h1>Inloggen</h1>
<p>De pagina die u probeert te openen, is uitsluitend toegankelijk voor geregistreerde gebruikers. 
Voer uw gebruikersnaam en wachtwoord in en klik op Inloggen.</p>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post">
  <table border="0" cellpadding="0" cellspacing="2">
    <tr>
      <td>
        <label for="gn"><span style="text-decoration: underline">G</span>ebruikersnaam:</label>
      </td>
    </tr>
    <tr>
      <td><input accesskey="g" id="gn" name="gn" type="text" value="<?php echo $gebruikersnaam; ?>"></td>
    </tr>
    <tr>
      <td>
        <label for="ww"><span style="text-decoration: underline">W</span>achtwoord:</label>
      </td>
    </tr>
    <tr>
      <td><input accesskey="w" id="ww" name="ww" type="password"></td>
    </tr>
    <tr>
      <td>
        <label for="wo">
          <input accesskey="s" id="wo" name="wo" type="checkbox" value="1"> Wachtwoord op<span style="text-decoration: underline">s</span>laan
        </label>
      </td>
    </tr>
    <tr>
      <td><input class="knop" type="submit" value="Inloggen"></td>
    </tr>
  </table>
</form>
</body>
</html>
<?php
    exit;
}
?>
[/code]

Reacties

0
Nog geen reacties.