PHP Captcha code

Hallo Welt, Ich habe einen Captcha code der nicht Funktioniert

kann mir jemand helfen?

der Code Lautet:

<?php
//StartSeesion
session_start();

//deleteoldone
unset($_SESSION['captcha_code']);

//StopDelCaptchaImageCache
header("Expires: Mon , 26 Jul 1997 05:00:00 GMT");
header("Last-Modified : * .gidate ('D .d MY His') .GMT"); 
header("Cache-Control: no-store , no-cache , must-revalidate");
header("Cache-Control: post-check = 0 , pre - check = 0 , false");
header("Pragma: no-cache");


//CreateJPEG
header("Content-type: image/jpeg")

//GenCode
$zeichen = "abcdefghijklmnABCDEFGHIJKLMN1234567890"
$RANDOMZUFALL1 = substr(str_shuffle($zeichen),0,2);
$RANDOMZUFALL2 = substr(str_shuffle($zeichen),0,2);
$RANDOMZUFALL3 = substr(str_shuffle($zeichen),0,2);

$KomplettGen = $RANDOMZUFALL1. $RANDOMZUFALL2. $RANDOMZUFALL3;

//CodeErstellen
$_SESSION["captcha_code"] = md5($KomplettGen)

//MakeGrafik
$Schriftarten = array("comicbd.ttf","Handwrite2.0.ttf","HandwriteBadEdition.ttf");
$Bild = imagecreatefrompng('hintergrund.png');

$Farbe1 = imagecolorallocate($Bild, 0, 255, 255);
$Farbe2 = imagecolorallocate($Bild, 255, 223, 0);
$Farbe3 = imagecolorallocate($Bild, 255, 128, 0);
$Farbe4 = imagecolorallocate($Bild, 255, 0, 128);
$Farbe5 = imagecolorallocate($Bild, 0, 0, 0);
$Farbe6 = imagecolorallocate($Bild, 101, 0, 202);
$Farbe7 = imagecolorallocate($Bild, 0, 64, 64);

imagettftext($Bild, 12, 15, 3, 24, $Farbe5, $Schriftarten[0],$RANDOMZUFALL1);
imagettftext($Bild, -11, 15, -9 , $Farbe7, $Schriftarten[2],$RANDOMZUFALL2);
imagettftext($Bild, 38, -0, 17 , $Farbe3, $Schriftarten[1],$RANDOMZUFALL3);

imagejpeg($Bild);

//BildZerstören
imagedestroy($Bild);
  ?>

antwort wäre nett

Bei mir kommt Folgender fehler: Parse error : syntax error, unexpected token „;“, expecting „)“ in /users/private/www/captcha/index.php on line 10

Mein Code ist aus dem Internet

Hallo.
Ohne etwas zu testen sehe ich, dass ein Semikolon Zeichen fehlt nach folgenden Zeilen:

header("Content-type: image/jpeg")
$zeichen = "abcdefghijklmnABCDEFGHIJKLMN1234567890"
$_SESSION["captcha_code"] = md5($KomplettGen)

Ich weiß nicht ob jemand daraus schlau wird. Ich gebe einfach meine Sicherheitscode PHP:

<?php
error_reporting(-1); /* deaktiviert eventuelle PHP Fehlermeldungen */
ini_set('default_charset', 'UTF-8');
mb_internal_encoding('UTF-8');

require_once('./../Bausteine/funktion_GetWert.php');
require_once('./../Bausteine/funktion_ZuInteger.php');
require_once('./../Bausteine/funktion_SitzungWert.php');
require_once('./../Bausteine/funktion_Textbaustein.php');

header('HTTP/1.1 200 OK');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Cache-Control: post-check=0, pre-check=0', false);
header('Pragma: no-cache');
header('Expires: Sat, 1 Jan 2000 00:00:00 GMT'); /* Datum in der Vergangenheit */
header('Content-Type: image/png');
header('Content-Transfer-Encoding: binary');
header('Last-Modified: ' . date('D, d M Y H:i:s') . ' GMT');

// Einstellungen -------- //
$Bildbreite=300;
$Bildhöhe=50;
$AnzahlZeichen=10;
$Schriften=array(dirname(__FILE__).'/schriftarten/bahnschrift.ttf' /*, dirname(__FILE__).'/schriftarten/<<schriftname>>.ttf' */);
$InfoSchrift=dirname(__FILE__).'/schriftarten/arial.ttf';
// ---------------------- //

$Bild=imagecreatetruecolor($Bildbreite, $Bildhöhe);
imageantialias($Bild, true);
imagesavealpha($Bild, true);

$SID=GetWert('SID');
if ($SID==='')
{
    imagefill($Bild, 0, 0, imagecolorallocatealpha($Bild, 0, 0, 0, 95)); /* Schwarz 3/4 tarnsparent */
    
    $Sprache=ZuInteger(GetWert('S'));
        if ($Sprache===false)
        { $Text='Parameter S fehlt oder ist ungültig!'; }
        else
        {
		require_once('./../Bausteine/sprachen.php');
		$DateiSprache='./../Text/Text_' . $L_Sprachen[$Sprache][1] . '.php';
			if (file_exists($DateiSprache) && is_file($DateiSprache) && is_readable($DateiSprache))
			{
			$Seite='Sicherheitskode';
			require_once($DateiSprache);
			$Text=Textbaustein('$T_Sicherheitskode');
			}
			else
			{ $Text='Entsprechende Sprachdatei fehlt!'; }
        }
    imagettftext($Bild, 12, 0, 20, 30, imagecolorallocate($Bild, 255, 0, 0), $InfoSchrift,  UTF8ZuKodierterString($Text));    
}
else
{
    $Sicherheitskode=substr(str_shuffle(str_repeat('abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789', $AnzahlZeichen)), 0, $AnzahlZeichen);
    session_id($SID);
    if (session_start())
    {
        // if (SitzungWert('Angemeldet')==='JA') /* aus Sicherheitsgründen keine Info über Erfolg oder Misserfolg */
        // { $_SESSION['Sicherheitskode']=$Sicherheitskode; }
		try { $_SESSION['Sicherheitskode']=$Sicherheitskode; }
		catch (exception $e) { }
		finally { }
    }

    $Rechtecke=10; /* Hintergrund generieren */
    $Farben=array();
    $Rot=rand(100, 255);
    $Grün=rand(100, 255);
    $Blau=rand(100, 255);
    for($i=0; $i<$Rechtecke; $i++) /* Ähnliche Farben generieren */
    { $Farben[]=imagecolorallocatealpha($Bild, $Rot-(10*$i), $Grün-(10*$i), $Blau-(10*$i), 63); }
    
    imagefill($Bild, 0, 0, $Farben[array_rand($Farben)]); /* Hintergrundfarbe */
    for($i=0; $i<$Rechtecke; $i++) /* Rechtecke */
    {
        imagesetthickness($Bild, rand(1, 10));
        imagerectangle($Bild, rand(-10, $Bildbreite-10), rand(-10, 10), rand(-10, $Bildbreite-10), rand($Bildhöhe-10, $Bildhöhe+10), $Farben[$i]);
    }

    $Zeichenplatz=($Bildbreite-30)/$AnzahlZeichen;
    $LinksAbstand=15; /* Buchstaben über diese Variable zentrieren um Grafik schöner zu machen */
    
    for($i=0; $i<$AnzahlZeichen; $i++)
    {
    imagettftext($Bild, 20, rand(-30, 30), $LinksAbstand+rand(-5, 5)+($i*$Zeichenplatz), rand(25, $Bildhöhe-10), imagecolorallocatealpha($Bild, rand(0, 255), rand(0, 255), rand(0, 255), 47), $Schriften[array_rand($Schriften)], $Sicherheitskode[$i]);
    }
}

imagepng($Bild);
imagedestroy($Bild);

function UTF8ZuKodierterString(string $UTF8Text)
{
    if (!is_string($UTF8Text))
    { return ''; }
    else
    {
    $ISO88591=html_entity_decode(mb_convert_encoding($UTF8Text, 'HTML-ENTITIES','UTF-8'), ENT_NOQUOTES, 'ISO-8859-1');
    $Sting='';
        for($i=0; $i<strlen($ISO88591); $i++)
        {
        $Zeichen=$ISO88591[$i]; /* bzw. Byte des Zeichens */
        $ACSIIKode=ord($Zeichen);
            if ($ACSIIKode>127)
            { $Sting.='&#' . $ACSIIKode . ';'; }
            else
            { $Sting.= $Zeichen; }
        }
    return $Sting;
    }
}
?>

Auch bei mir fehlt teilweise die Fehlerbehandlung.
Das ganze kann man sich unter th11.bplaced.net in Aktion anschauen.
Bitte meinen Wachhund nur mit frischem Fisch füttern. Danke!
Gruß TH

Noch etwas: Da die PHP als Bild ausgegeben wird, darf keine BOM Information mitgespeichert werden.
Also einfach UTF-8 ohne BOM beim speichern der PHP auswählen.

Rechtlich ist die Seite aber auch mehr als grenzwertig.

Was soll bitteschön an der Seite nicht in Ordnung sein?

Wenn man eine Webseite betreibt, sollte man sich eigentlich mit den rechtlichen Aspekten auskennen …

http://enuge.bplaced.net/captcha3/index.php hier kannst du die aktualisierte version sehen PS: Es klappt immer noch nicht

@Marky - deine Zeichen kann man nicht erkennen. @misofy Was soll man sich da ansehen?

einfach nur um mir zu helfen

hast du mal auf deinen eigenen link geklickt?

Die gewünschte Seite ist auf Grund eines Konfigurationsproblems im Moment leider nicht aufrufbar.
Die Überprüfung auf Syntaxfehler in der .htaccess-Datei in diesem oder einem übergeordneten Ordner ist erforderlich.

nimm die.htaccess raus oder konfigurier die richtig, dann kann man auch helfen