Alexander1307
Grünschnabel
Hallo zusammen,
ich entwickle gerade ein Kontaktformular, da in einem sicherem Kontaktformular ein Captcha nicht fehlen darf, habe ich mir aus dem ersten Teil des Tutorials "einfacher Captcha mit GD2 und FreeType" von Billie den Code rauskopiert um den Code bei mir einzubauen. Leider klapts irgendwie nicht. Habe denn Code in der Datei "captcha.php" gespeichert. Wenn ich jetzt die Datei "captcha.php" auf den Webserver ausführe bekomme ich nur den Pfad wo die Datei "captcha.php" liegt, zu sehen.
Hier der Code von der Datei captcha.php :
wie gesagt habe den Code aus dem Tutorial 1 zu 1 übernommen nur die Pfade zu den Fonts habe ich verändert. Kann mir dabei jemand Helfen? Danke im vorraus.
ich entwickle gerade ein Kontaktformular, da in einem sicherem Kontaktformular ein Captcha nicht fehlen darf, habe ich mir aus dem ersten Teil des Tutorials "einfacher Captcha mit GD2 und FreeType" von Billie den Code rauskopiert um den Code bei mir einzubauen. Leider klapts irgendwie nicht. Habe denn Code in der Datei "captcha.php" gespeichert. Wenn ich jetzt die Datei "captcha.php" auf den Webserver ausführe bekomme ich nur den Pfad wo die Datei "captcha.php" liegt, zu sehen.
Hier der Code von der Datei captcha.php :
PHP:
<?php
$CAPTCHA_LENGTH = 5; // Länge der Captcha-Zeichenfolge, hier fünf Zeichen
$FONT_SIZE = 18; // Schriftgröße der Zeichen in Punkt
$IMG_WIDTH = 170; // Breite des Bild-Captchas in Pixel
$IMG_HEIGHT = 60; // Höhe des Bild-Captchas in Pixel
// Liste aller verwendeten Fonts
$FONTS[] = './ttf/actionj.\ttf';
$FONTS[] = './ttf/apicture.\ttf';
$FONTS[] = './ttf/assimila.\ttf';
// Unser Zeichenalphabet
$ALPHABET = array('A', 'B', 'C', 'D', 'E', 'F', 'G',
'H', 'Q', 'J', 'K', 'L', 'M', 'N',
'P', 'R', 'S', 'T', 'U', 'V', 'Y',
'W', '2', '3', '4', '5', '6', '7');
// Wir teilen dem Browser mit, dass er es hier mit einem JPEG-Bild zu tun hat.
header('Content-Type: image/jpeg', true);
// Wir erzeugen ein leeres JPEG-Bild von der Breite IMG_WIDTH und Höhe IMG_HEIGHT
$img = imagecreatetruecolor($IMG_WIDTH, $IMG_HEIGHT);
// Wir definieren eine Farbe mit Zufallszahlen
// Die Farbwerte sind durchgehend und absichtlich hoch (200 - 256) gewählt,
// um eine "leichte" Farbe zu erhalten
$col = imagecolorallocate($img, rand(200, 255), rand(200, 255), rand(200, 255));
// Wir füllen das komplette Bild mit der zuvor definierten Farbe
imagefill($img, 0, 0, $col);
$captcha = ''; // Enthält später den Captcha-Code als String
$x = 10; // x-Koordinate des ersten Zeichens, 10 px vom linken Rand
for($i = 0; $i < $CAPTCHA_LENGTH; $i++) {
$chr = $ALPHABET[rand(0, count($ALPHABET) - 1)]; // ein zufälliges Zeichen aus dem definierten Alphabet ermitteln
$captcha .= $chr; // Der Zeichenfolge $captcha das ermittelte Zeichen anfügen
$col = imagecolorallocate($img, rand(0, 199), rand(0, 199), rand(0, 199)); // einen zufälligen Farbwert definieren
$font = $FONTS[rand(0, count($FONTS) - 1)]; // einen zufälligen Font aus der Fontliste FONTS auswählen
$y = 25 + rand(0, 20); // die y-Koordinate mit einem Mindestabstand plus einem zufälligen Wert festlegen
$angle = rand(0, 30); // ein zufälliger Winkel zwischen 0 und 30 Grad
/*
* Diese Funktion zeichnet die Zeichenkette mit den
* gegeben Parametern (Schriftgröße, Winkel, Farbe, TTF-Font, usw.)
* in das Bild.
*/
imagettftext($img, $FONT_SIZE, $angle, $x, $y, $col, $font, $chr);
$dim = imagettfbbox($FONT_SIZE, $angle, $font, $chr); // ermittelt den Platzverbrauch des Zeichens
$x += $dim[4] + abs($dim[6]) + 10; // Versucht aus den zuvor ermittelten Werten einen geeigneten Zeichenabstand zu ermitteln
}
imagejpeg($img); // Ausgabe des Bildes an den Browser
imagedestroy($img); // Freigeben von Speicher
?>
wie gesagt habe den Code aus dem Tutorial 1 zu 1 übernommen nur die Pfade zu den Fonts habe ich verändert. Kann mir dabei jemand Helfen? Danke im vorraus.