Hi@all
Habe folgende Captcha.php
Auf meinem Localhost (HomeRechner) funktioniert alles, doch online leider nicht.
Kann mir jemand bitte helfen.
Thx@all
Habe folgende Captcha.php
PHP-Code:
<?php
session_name('CAP');
session_start();
error_reporting(E_ALL);
# Benötigte Files laden! Hier kann editiert werden!
$CAPTCHA_TempString = "";
# Zufallsfunktion für Zahlen und Buchstaben
function GetRandomChar()
{
# Zufallszahl generieren
mt_srand((double)microtime()*1000000);
$CAPTCHA_RandVal = mt_rand(1,2);
# Buchstabensalat generieren jeh nachdem ob Randval 1 oder 2 ist
switch ($CAPTCHA_RandVal)
{
case 1:
# Zahlen 0-9
$CAPTCHA_RandVal = mt_rand(48, 57);
break;
case 2:
# Grosse Buchstaben
$CAPTCHA_RandVal = mt_rand(65, 90);
break;
}
# Zufallscode ausgeben
return chr($CAPTCHA_RandVal);
}
# Zufallscode x-stellig ausgeben
for ($i = 1; $i <= 6; $i++)
{
$CAPTCHA_TempString .= GetRandomChar();
}
# Text in Sessionvariable speichern
if (isset($CAPTCHA_TempString))
{
$_SESSION['captcha'] = str_replace('I','E',str_replace('0','3',str_replace('1','S',str_replace('O','P',str_replace('4','A',str_replace('D','K',$CAPTCHA_TempString))))));
}
else
{
die("Zufallscode konnte nicht generiert werden!");
}
// Alternative Grafik-Zeichenfunktion nutzen?
// (bei fehlerhafter Darstellung oder fehlendem Truetype-support) 1=nein, 2=ja
$imagettftext = "1";
$Welleneffekt = "1";
$Textgroesse = 30;
$Texthoehe = 45;
$Schriftart = "mistral.ttf";
$bg1 = "background1.png";
$bg2 = "background2.png";
$ov1 = "overlay1.png";
$ov2 = "overlay2.png";
// Benötige Strings überprüfen
if (isset($_SESSION['captcha']))
{
$CAPTCHA_RandomText = $_SESSION['captcha'];
}
else
{
// Fehlermeldung ausgeben
header ("Content-type: image/png");
$im = @imagecreatetruecolor(250, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 10, 5, 7, "Kein Zufallscode übergeben!", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
// Auf Funktion überprüfen
if ($imagettftext == "1")
{
// Benötige Files überprüfen
if (!file_exists($Schriftart))
{
// Fehlermeldung ausgeben
// header ("Content-type: image/png");
$im = @imagecreatetruecolor(250, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 10, 5, 7, "Schriftart nicht gefunden!", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
if (!file_exists($bg1) OR !file_exists($bg2))
{
// Fehlermeldung ausgeben
header ("Content-type: image/png");
$im = @imagecreatetruecolor(250, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 10, 5, 7, "Hintergrundbild nicht gefunden!", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
if (!file_exists($ov1) OR !file_exists($ov2))
{
// Fehlermeldung ausgeben
header ("Content-type: image/png");
$im = @imagecreatetruecolor(250, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 10, 5, 7, "Overlaybild nicht gefunden!", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
// Zufallshintergrund
mt_srand((double)microtime()*1000000);
$Bild1 = mt_rand(1, 2);
switch ($Bild1)
{
case 1:
$Grafik=imagecreatefrompng($bg1);
$Grafikhilf=imagecreatefrompng($bg1);
break 1;
case 2:
$Grafik=imagecreatefrompng($bg2);
$Grafikhilf=imagecreatefrompng($bg2);
break 1;
}
// Zufallsgrafik2
mt_srand((double)microtime()*1000000);
$Bild2 = mt_rand(1, 2);
switch ($Bild2)
{
case 1:
$Grafik2=imagecreatefrompng($ov1);
break 1;
case 2:
$Grafik2=imagecreatefrompng($ov2);
break 1;
}
// Textfarben ins Array speichern
$textfarbe = array( imagecolorallocate($Grafik, 128, 128, 128),
imagecolorallocate($Grafik, 0, 0, 0),
imagecolorallocate($Grafik, 50, 171, 4),
imagecolorallocate($Grafik, 128, 0, 128),
imagecolorallocate($Grafik, 128, 128, 255),
imagecolorallocate($Grafik, 255, 128, 128),
imagecolorallocate($Grafik, 192, 122, 0),
imagecolorallocate($Grafik, 250, 94, 250),
imagecolorallocate($Grafik, 122, 146, 224),
imagecolorallocate($Grafik, 122, 155, 180)
);
// Text auf das Bild schreiben
imagettftext($Grafik, $Textgroesse, mt_rand(-13, 13), 10, $Texthoehe+mt_rand(-7,8), $Textfarbe1 = $textfarbe[array_rand($textfarbe)] , $Schriftart, $CAPTCHA_RandomText[0]);
imagettftext($Grafik, $Textgroesse, mt_rand(-13, 13), 45, $Texthoehe+mt_rand(-7,8), $Textfarbe2 = $textfarbe[array_rand($textfarbe)] , $Schriftart, $CAPTCHA_RandomText[1]);
imagettftext($Grafik, $Textgroesse, mt_rand(-13, 13), 80, $Texthoehe+mt_rand(-7,8), $Textfarbe3 = $textfarbe[array_rand($textfarbe)] , $Schriftart, $CAPTCHA_RandomText[2]);
imagettftext($Grafik, $Textgroesse, mt_rand(-13, 13), 113, $Texthoehe+mt_rand(-7,8), $Textfarbe4 = $textfarbe[array_rand($textfarbe)] , $Schriftart, $CAPTCHA_RandomText[3]);
imagettftext($Grafik, $Textgroesse, mt_rand(-13, 13), 150, $Texthoehe+mt_rand(-7,8), $Textfarbe5 = $textfarbe[array_rand($textfarbe)] , $Schriftart, $CAPTCHA_RandomText[4]);
imagettftext($Grafik, $Textgroesse, mt_rand(-13, 13), 191, $Texthoehe+mt_rand(-7,8), $Textfarbe6 = $textfarbe[array_rand($textfarbe)] , $Schriftart, $CAPTCHA_RandomText[5]);
// Welleneffekt
if ($Welleneffekt == "2")
{
$stauchung = mt_rand(0,100)/400+0.10;
$Grafikalt = $Grafik;
$Grafik = $Grafikhilf;
for ($i=1;$i<=65;$i++)
{
imagecopy($Grafik, $Grafikalt, round((sin($i*$stauchung)*2))+3, $i, 1, $i, 230,1);
}
}
// Transparente Grafik drüberlegen
imagecopy($Grafik, $Grafik2, 0, 0, 0, 0, 230, 65);
// Bild ausgeben
header("Content-type: image/png");
imagepng($Grafik);
imagedestroy($Grafik);
}
else if ($imagettftext == "2")
{
// Alternativbild ausgeben
header ("Content-type: image/png");
$im = @imagecreatetruecolor(70, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 255, 255, 255);
imagestring($im, 10, 5, 7, $CAPTCHA_RandomText, $text_color);
imagepng($im);
imagedestroy($im);
}
else
{
// Fehlermeldung ausgeben
header ("Content-type: image/png");
$im = @imagecreatetruecolor(430, 30) or die("Cannot Initialize new GD image stream");
$text_color = imagecolorallocate($im, 233, 14, 91);
imagestring($im, 10, 5, 7, "Fehlerhafte Auswahl($imagettftext)der Funktion! (1 od. 2)", $text_color);
imagepng($im);
imagedestroy($im);
exit();
}
?>
Kann mir jemand bitte helfen.
Thx@all
Kommentar