Hallo, hab folgenden captchacode gefunden, den ich gut finde:
Es gibt 3 Dateien:
captcha.php
captcha.PNG
FONT.TTF
captcha.php
Einbau ins Formular:
einbau ins script:
Wenn ich nun mein Formular abschicke kommt lediglich folgendes:
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\2.php:4) in C:\xampp\htdocs\2.php on line 5
Was kann ich nun tun?
Wo ist der fehler?
in line 5 steht folgendes:
session_start();
Also, bitte helft mir
Change
Es gibt 3 Dateien:
captcha.php
captcha.PNG
FONT.TTF
captcha.php
PHP-Code:
<?php
session_start();
unset($_SESSION['captcha_spam']);
function randomString($len) {
function make_seed(){
list($usec , $sec) = explode (' ', microtime());
return (float) $sec + ((float) $usec * 100000);
}
srand(make_seed());
//Der String $possible enthält alle Zeichen, die verwendet werden sollen
$possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
$str="";
while(strlen($str)<$len) {
$str.=substr($possible,(rand()%(strlen($possible))),1);
}
return($str);
}
$text = randomString(5); //Die Zahl bestimmt die Anzahl stellen
$_SESSION['captcha_spam'] = $text;
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);
?>
PHP-Code:
<tr>
<td><img src="captcha/captcha.php" border="0" title="Sicherheitscode"></td>
<td><input type="text" name="sicherheitscode" size="5"></td>
</tr>
PHP-Code:
<?php
session_start();
if(isset($_SESSION['captcha_spam']) AND $_POST["sicherheitscode"] == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
//
//
//Hier kommt das ursprüngliche Script hin.
//
//
}
?>
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\xampp\htdocs\2.php:4) in C:\xampp\htdocs\2.php on line 5
Was kann ich nun tun?
Wo ist der fehler?
in line 5 steht folgendes:
session_start();
Also, bitte helft mir
Change
Kommentar