Das Tippsforum
Link zum Forum
Jeder kennt ihn… Jedem nervt er… nur dem Admin nicht, denn so ein Sicherheitscode ist ziemlich nützlich, denn ohne ihn könnten Spambots die darauffolgende Seite x-mal aufrufen und viel Traffic verbrauchen.
Ihr könnt diesen Sicherheitscode z.B. bei Anmeldungen oder Kontaktformularen nutzen.
captcha.php:
Hier wird das Bild generiert
<?php
session_start();
$captcha = $_SESSION['captcha'];
//Folgende Farben ergeben folgenden Code, für die nächste Funktion: imagecolorallocate:, alternativ kann auch nach RGB gegooglet werden.
//schwarz: imagecolorallocate($bild,00,00,00)
//rot: imagecolorallocate($bild, 255,0,0)
//blau: imagecolorallocate($bild, 0,0,255)
//weiß: imagecolorallocate($bild, 255,255,255)
//gelb: imagecolorallocate($bild, 255,255,0)
//grün: imagecolorallocate($bild, 0,255,0)
$typ = 1; //Wenn du ein Hintergrundbild statt einer Farbe willst, dann schreib da eine 1 hin, ansonsten eine 0
if($typ==0) {
$bild = imagecreatefrompng(’captcha.PNG’); //Bitte tragen Sie hier den Link zu dem Hintergrundbild ein.
$bildhoehe = imagesy($bild);
$bildbreite = imagesx($bild);
}
else {
$bildhoehe = 60;
$bildbreite = 200;
$bild = imagecreate($bildbreite, $bildhoehe);
imagecolorallocate($bild, 0,0,255); //Hintergrundfarbe
}
$text = imagecolorallocate($bild, 0, 0, 0); //Textfarbe
$font = 10;
$a = 20;
$x = floor($bildbreite/strlen($captcha))-5;
for($b=0; $b < strlen($captcha); $b++)
{
$c = mt_rand(2,$bildhoehe-20);
imagestring ($bild,$font,$a,$c, $captcha{$b}, $text);
$a = $a+$x;
}
if(function_exists(”imagegif”))
{
header(”Content-type: image/gif”);
imagegif($bild);
}
elseif (function_exists(”imagepng”))
{
header(”Content-type: image/png”);
imagepng($bild);
}
elseif (function_exists(”imagejpeg”))
{
header(”Content-type: image/jpeg”);
imagejpeg($bild, “”, 0.5);
}
?>
Nun kommen wir zur Eingabeaufforderung und Darstellung unseres Sicherheitscodes:
<?php
session_start();
function zufallscode()
{
mt_srand(crc32(microtime()));
$laenge = 5; //Hier kommt die Anzahl der Zeichen, die angezeigt werden sollen, rein
$zeichen = "abcdefghijklmnpqrstuvwxyz0123456789"; // Hier fügt ihr bitte alle Zeichen ein, die abgefragt werden sollen
$laenge_zeichen = strlen($zeichen)-1;
$code= "";
for($a=0; $a<$laenge; $a++) {
$code .= $zeichen{mt_rand(0, $laenge_zeichen)};
}
return $code;
}
$_SESSION['captcha'] = zufallscode();
?>
<form action=”abfrage.php” method=”post”>
<img src=”captcha.php” alt=”Captcha”>
<input type=”text” name=”captcha” maxlength=”10″><br />
<input type=”submit” value=”abfragen” /></form>
Nun kommen wir zur letzten Teil:
Die Abfrage, ob der Sicherheitscode auch richtig ausgefüllt wurde.
Den Teil kann man in eine extra Datei speichern und dann includen oder einfach in eine andere Datei kopieren:
abfrage.php:
<?php
session_start();
if($_POST['captcha'] == $_SESSION['captcha']) {
echo “Sicherheitscode stimmt”;
} else {
echo “Sie haben den Sicherheitscode nicht richtig eingegeben”;
}
?>