captcha problem

croqued-monsieur

Grünschnabel
Ich weiss, das Thema wurde schon einige Male durchgenommen. Hab soweit wie möglich alleine gemacht, aber ich komm jetzt nicht mehr weiter. Mein problem ist, dass das Bild jetzt nicht angezeigt wird. Meine Frage, liegt es nur an der imagejpeg funktion? codeteil sieht so aus:

Code:
<?php
$DIR='/tmp';
$DIR2='inc';
?>


<li><?php 



	$hash = md5(uniqid (rand()));
	echo '<p><input type="hidden" name="hash" value="'.$hash.'" /></p>';
	echo '<p><img src="inc/captcha.php?hash='.$hash.'" /></p>';
	echo imagejpeg($DIR2.$DIR, $DIR.'captcha.php?hash?'.$hash, 20);
	echo '<p>Gib die Lösung ein:<br /><input type="text" name="loesung" size="6" /></p>';


echo 'hash = '.$hash;
?>
</li>

das liegt innerhalb eines Formulars. Das bild wird mir einfach nicht angezeigt. Fehler kommt folgender:

Warning: imagejpeg(): supplied argument is not a valid Image resource in /home/appenze/public_html/gb/gb_add.php on line 51

Vielen Dank für die Hilfe
 
Ich weiß ja jetzt nicht, ob es diese imagejpeg-Funktion vordefiniert gibt, oder deine ist, aber die Pfadangabe schaut etwas komisch aus:
Du gibst im ersten Argument inc/tmp und im zweiten /tmp...brauchst du nicht vielleicht auch im ersten eine Pfadangabe vor "inc" wie "./" oder "../" oder "/" etc. Ist jetzt aber nur ne Vermutung!
 
Schau dir bitte erstmal die Grafikfunktionen von PHP an, bevor du da irgendwas in den Editor hackst.... nen bisserl einlesen sollte nicht zuviel verlangt sein :(
 
Aaalso, du speicherst folgenden Code als image.php im gleichen Verzeichnis ab:
PHP:
<?php
header('Content-Type: image/gif');

$hash = (isset($_GET['hash']) && !empty($_GET['hash'])) ? $_GET['hash'] : 'Kein Hashwert!';

// Bild 200x200px erstellen
$img	= imagecreate(400, 50);

// Hintergrundfarbe
$bgCol	= imagecolorallocate ($img, 0, 255, 0);

// Hintergrund füllen
imagefill($img, 0, 0, $bgCol);

// Textfarbe
$tCol	= imagecolorallocate($img, 0, 0, 0);

// Text setzen
imagestring($img, 3, 5, 20, $hash, $tCol);

imageGIF($img);
?>

Und ersetzt deinen mit folgendem:
PHP:
<li><?php

	$hash = md5(uniqid (rand()));
	echo '<p><input type="hidden" name="hash" value="'.$hash.'" /></p>';
	echo '<img src="image.php?hash='.$hash.'" />';
	echo '<p>Gib die Lösung ein:<br /><input type="text" name="loesung" size="6" /></p>';

echo 'hash = '.$hash;
?>
</li>

Bei mir klappts... :)

Nachtrag
Swen Mintel hat natürlich absolut Recht. Guck mal hier: Klick!
 
Zuletzt bearbeitet:
Zurück