Mailinglisten-Archive |
Hallo Holger, Holger Zengerle wrote: > Suche ein Script für ein Kontaktformular, bei dem man zum Versenden > eine zufällig generierte Nummern- oder Buchstabenkombination eingeben > muss? Sollte möglichst Freeware sein ohne ein copyright einbinden zu > müssen. Der Fachterminus dafür lautet "captcha", falls du googlen möchtest. Ich hab dafür nach der kürzlichen Dikussion und aus aktuellem Anlass eine Klasse geschrieben. Diese lässt sich dann überall in weitere Scripte einbinden. Beispiel-Code für die Einbindung: <?php // example.php include 'captcha.class.php'; $c = new captcha; $c->expirationTime = 30; if ( $_POST['code'] AND $c->verify($_REQUEST['hash'], $_REQUEST['code']) ) { echo 'ok<br>'; echo '<a href="'.$_SERVER['PHP_SELF'].'">back to captcha</a>'; } else { $captcha = $c->getCaptcha(); echo 'md5 hash: '.$captcha['hash'].'<br />'; echo 'challenge code: '.$captcha['code'].'<br />'; echo '<img src="'.$captcha['image'].'" title="captcha" alt="captcha" />'; echo '<form method="post" target="_self" action="'.$_SERVER['PHP_SELF'].'">'; echo '<input type="hidden" name="hash" value="'.$captcha['hash'].'" />'; echo '<input type="text" name="code" size="10" />'; echo '<input type="submit" name="submit" value="submit" />'; echo '</form>'; } ?> Unter http://212.80.239.144/solutions/captcha.class/example.php kannst du das Ganze auch mal testen und das generierte Captcha betrachten. Ich hab ein paar Parameter eingebaut, um Schriftgröße, -farbe, -art Laufweite usw zu variieren und dem persönlichen Geschmack bzw dem Layout der betreffenden Site anzupassen. var $captchasDir = './'; var $fontsDir = './'; var $imageHeight = 50; var $imageBackgroundColor = '#ffffff'; var $imageBackgroundType = 'light'; // light, dark var $numChars = 6; var $fontSize = 20; var $fontColor = '#000000'; var $letterSpace = 25; var $extraSpace = 10; // extra space after m and w Es wird eine zufällige Zahlen- und Buchstabenkombination aus mehreren grafischen Fonts generiert und mit kontrastarmen Farben über einen zufälligen kontrastierten Hintergrund gelegt. Position und Winkel der Buchstaben variieren ebenfalls. Daraus wird eine Bilddatei erzeugt, die du auf deiner Seite einbindest. Diese Datei existiert solange wie die expiration time, die du im Script angibts. Falls dir die Funktionalität zusagt, würde ich die Klasse noch doku- mentieren und dir zusenden. Dazu einfach per PM bei mir melden. regards, Ringo PS: Falls jemand anders auch interesse hat, kann er/sie sich auch gern melden.
php::bar PHP Wiki - Listenarchive