Ein Dateischutz, der Links mit zufällig generierten Passwörtern zur Einmaligen Nutzung sichert.
<?php
/*
Passwortliste
Aktion: PHP Scripte für die armen dieser Welt
Der Erlös geht für mein Pausenbrot drauf
Copyright (c) 2004 by Phillip 'Firebird' Berndt
*/
$passwortDatei = 'keywords.dat';
// GenPasswort generiert ein Passwort auf die Seite $page
function genPasswort($page)
{
$passwortArray = file_exists($GLOBALS['passwortDatei']) ?
unserialize(implode('', file($GLOBALS['passwortDatei']))) : array();
$randomPw = substr(md5(uniqid(time())), 0, 6);
$passwortArray[$randomPw] = $page;
fwrite(fopen($GLOBALS['passwortDatei'], 'wb'), serialize($passwortArray));
return $randomPw;
}
// gehPasswort prüft ob ein Passwort existiert und leitet
// ggf. auf diese Seite weiter
function gehPasswort($passwort)
{
$passwortArray = file_exists($GLOBALS['passwortDatei']) ?
unserialize(implode('', file($GLOBALS['passwortDatei']))) : array();
if(isset($passwortArray[$passwort]))
{
header('Location: '.$passwortArray[$passwort]);
unset($passwortArray[$passwort]);
fwrite(fopen($GLOBALS['passwortDatei'], 'wb'), serialize($passwortArray));
die();
}
return 1;
}
// Beispielprogramm:
$action = $_GET['action'];
if($action == 'neuesPw')
echo('Dein Passwort lautet '.genPasswort($_GET['seite']));
if($action == 'geheZu')
if(gehPasswort($_GET['passwort']))
echo('Falsches Passwort');
?>
<hr>
<form method=get>
Passwort: <input type=text name=passwort>
<input type=submit name=action value=geheZu>
</form>
<hr>
<form method=get>
Passwort generieren für: <input type=text name=seite>
<input type=submit name=action value=neuesPw>
</form>