Captcha für Kontaktformular

Gesperrt
Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Captcha für Kontaktformular

Beitrag von Vetinari »

hallo,

habe mir mal alles unter dem suchbegriff "captcha" und 4.6x durchgelesen und teilweise auch ausprobiert.
aber irgendwie funktionierte es nicht. nun will ich mir selbst eine lösung stricken - nach dem muster: eigenes modul ruft externe captcha.php auf, welche sich in einem eigenen unterordner unter "cms" befindet. dort liegen auch das entsprehende bild und die schriftart für das captcha.
außerhalb von contenido funktioniert auch alles bestens, aber im cms wird einfach kein bild aufgebaut.

die zentrale funktion der captcha.php ist ja diese hier:

Code: Alles auswählen

   header('Content-type: image/png'); 
   $img = ImageCreateFromPNG('captcha.png'); //Backgroundimage 
   $color = ImageColorAllocate($img, 0, 0, 0); //Farbe 
   $ttf = $_SERVER['DOCUMENT_ROOT']."/captcha/XFILES.TTF"; //Schriftart 
   $ttfsize = 25; //Schriftgrösse 
   $angle = rand(0,5); 
   $t_x = rand(5,30); 
   $t_y = 35; 
   imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text); 
   imagepng($img); 
   imagedestroy($img); 
wenn ich die seite aufrufe, sehe ich an stelle des bildes einen kleinen senkrechten strich, aber das bild wird nicht aufgebaut.
wo liegt mein fehler?

gruss, martin
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.
nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Re: Captcha für Kontaktformular

Beitrag von nicnac »

hi,
hast Du eine Lösung gefunden?
Würde mich auch interessieren...
Wenn du keine fehlermeldung erhälst --> liegt es vielleicht daran, dass Du keine Angaben für die Bildgröße machst im Modul, also Höhe und Breite?
Der IE mag das ja gar nicht und stellt nix dar.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Re: Captcha für Kontaktformular

Beitrag von Vetinari »

hi nicnac,

ich habe folgende lösung mit einer externen datei captcha.php. diese liegt in einem ordner 'captcha' direkt unter 'cms' zusammen mit dem hintergrundbild und der schriftart (getestet in firefox 2 + 3 und ie 7):

1. aufruf:

Code: Alles auswählen

<form name=\"formular\" method=\"post\" action=\"captcha/captcha.php?doit=check\">
...
<img src=\"captcha/captcha.php?doit=gen\" border=\"1\" alt=\"Sicherheitscode\" title=\"Sicherheitscode\" />
...
2. captcha.php:

Code: Alles auswählen

<?php

/*-------------------------------------------------------------- 
Artikel: Sicherheitsfeld mit PHP, GDlib und Freetype ----
Internet: www.contentcharge.de , Mail: info@contentcharge.de
Disclaimer: Fuer den Einsatz dieses Scriptes und
evtl. daraus resultierenden Folgen uebernehmen wir 
keine Haftung.

Article: Securityfield (captcha) with PHP, GDlib and Freetype
Contact: www.contentcharge.de, Mail: info@contentcharge.de
Disclaimer: We are not responsible for the use of this ressource
in part or whole. So use at your own risk.

Copyright 2004 Contentcharge-Media, Christian Lehmann
---------------------------------------------------------------*/

$wert = Array('hier habe ich einfach 10 vorgegebene buchstaben-zahlen-kombination eingegeben im stil von: '123X45', da eine automatische lösung irgendwie nicht funktionierte');

if($_GET['doit'] == "check") {
    
 if(in_array($_POST['Security'], $wert)) {
        
  if($_POST['Speichern']) {

   mail($strEmpfaenger, $strSubject, $strMailtext, "From: ".$strFrom);

 exit; }
 
 }
 
} elseif ($_GET['doit'] == "gen") {
    header('Content-type: image/png');
    $img = ImageCreateFromPNG('security_background.png');
    $text = $wert[rand(0,count($wert)-1)];
    $color = ImageColorAllocate($img, 0, 0, 0);
    $ttf = 'XFILES.TTF';
    $ttfsize = 25; 
    $angle = rand(0,5); 
    $text_x = rand(5,30);
    $text_y = 35;
    imagettftext($img, $ttfsize, $angle, $text_x, $text_y, $color, $ttf, $text);
    imagepng($img);
    imagedestroy($img);
}

?>
gruss, martin
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.
nicnac
Beiträge: 326
Registriert: Do 6. Jan 2005, 15:21
Wohnort: Bln
Kontaktdaten:

Re: Captcha für Kontaktformular

Beitrag von nicnac »

hey, super.
Danke.
Und was war mit dem geschilderten Problem?
Zuletzt geändert von nicnac am Di 14. Apr 2009, 13:43, insgesamt 1-mal geändert.
Gruß nicnac
---------------
arbeite seit Contenido Version 4.4.5 mit dem System, ca. 30 Websites mit Contenido umgesetzt auf domainfactory, Strato und 1und1.
Vetinari
Beiträge: 136
Registriert: Sa 31. Mär 2007, 19:11
Wohnort: Fulda
Kontaktdaten:

Re: Captcha für Kontaktformular

Beitrag von Vetinari »

hmm, das hatte ich zwischenzeitlich auch nochmal, aber das lag nur daran, dass der code irgendwo einen fehler hatte - wo weiss ich nicht mehr :lol:

martin
Si non confectus, non reficiat. (Motto der Vetinaris)
Solange etwas nicht kaputt ist, repariere es nicht.
oder:
Lass die Dinge einfach laufen, die meisten Probleme erledigen sich eh von selbst.
Gesperrt