Hey,
bin grad dabei mir ein Captcha zu erstellen. Die Ordner Struktur(vor dem Ausführen):
kontaktformular.php
captcha/
------L1/
--------A.png
--------B.png
-------- ...
Danach:
captcha.jpg
kontaktformular.php
captcha/
-------L1/
---------A.png
---------B.png
--------- ...
A.png(usw) haben die Maße(200 * 200).
Wenn ich das Script ausführe sieht captcha.jpg so aus:

und so sieht ein Buchstabe aus:

Ich habe folgende Werte erhalten(wenn $laenge = 5 ist):
$x_probeBild = 200;
$y_probeBild = 200;
$x_size = 1000;
$y_size = 200;
Wenn ich folgendes mache:
$dst_x .= $x_probeBild * $key;
ist dst_x am Schluss: 0200400600800;
Ich kapier das einfach nicht. Errorreporting ist E_ALL.
Danke schon Mal
LG Sony
bin grad dabei mir ein Captcha zu erstellen. Die Ordner Struktur(vor dem Ausführen):
kontaktformular.php
captcha/
------L1/
--------A.png
--------B.png
-------- ...
Danach:
captcha.jpg
kontaktformular.php
captcha/
-------L1/
---------A.png
---------B.png
--------- ...
A.png(usw) haben die Maße(200 * 200).
Wenn ich das Script ausführe sieht captcha.jpg so aus:
und so sieht ein Buchstabe aus:
PHP-Code:
//Größe eines Captcha Buchstaben wir ermittelt
$probeBild = imagecreatefrompng("captcha/L1/1.png");
$x_probeBild = imagesx($probeBild); //x-Koordinate
$y_probeBild = imagesy($probeBild); //y-Koordinat
//Leeres Bild wird erzeugt, in dass die Buchstaben hineinkopiert werden
$x_size = $x_probeBild * $laenge; // Da die länge des Captchas Dyamisch ist, muss auch die länge des Bildes Dynamisch sein
$y_size = $y_probeBild; //Die Höhe enspricht der Höhe eines Buschstaben
$leeresBild = imagecreatetruecolor($x_size,$y_size); //Leeres Bild wird erzeugt
foreach($captchaWerte as $key => $wert){
$zufall = 1; //rand(1,3); Normalerweise rand(), aber im Moment gibt es nur den Ordner L1 mit Inhalt
$bild = imagecreatefrompng("captcha/L$zufall/$wert.png");
$dst_x = $x_probeBild * $key;
imagecopyresampled($leeresBild, $bild, $dst_x, 0, 0, 0, $x_size, $y_size, $x_probeBild, $y_probeBild);
}
imagejpeg($leeresBild, "captcha.jpg", 100);
$x_probeBild = 200;
$y_probeBild = 200;
$x_size = 1000;
$y_size = 200;
Wenn ich folgendes mache:
$dst_x .= $x_probeBild * $key;
ist dst_x am Schluss: 0200400600800;
Ich kapier das einfach nicht. Errorreporting ist E_ALL.
Danke schon Mal
LG Sony
Kommentar