phpbar.de logo

Mailinglisten-Archive

[php] Script für Mailformular-Sicherheit

[php] Script für Mailformular-Sicherheit

Ringo Großer swek at gmx.net
Mon Mai 8 12:18:48 CEST 2006


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