kann mir jemand sagen, wo ich sehen kann ob mein Server die Funktion imagecreate ausführen kann??
Danke schonmal
kann mir jemand sagen, wo ich sehen kann ob mein Server die Funktion imagecreate ausführen kann??
Danke schonmal
phpinfo nach GDlib schaun
laut meiner phpinfo() ist es aktiviert...
gd
GD Support enabled
GD Version 2.0 or higher
FreeType Support enabled
FreeType Linkage with freetype
FreeType Version 2.1.10
T1Lib Support enabled
GIF Read Support enabled
GIF Create Support enabled
JPG Support enabled
PNG Support enabled
WBMP Support enabled
benutze es um in meinem Gästebuch für Captcha.
auf anderen Servern läuft es auch ohne Probleme nur auf dem einen nicht.
Woran könnte es noch liegen?
sieht richtig aus die config, sollte eigentlich funzen...
is die funktion au richtig ) was sie eig sein müssten, wenn ein cptcha geht...)
Es könnte auch sein, das das Captcha Imagick verwendet, Ist aber nicht wahrscheinlich.
hmm.
also ich zeig euch mal den kompletten Code, vielleicht ist ja doch was falsch!
code.php
<?php
//Captcha Sicherheitsabfrage
$Buchstaben=array("A", "B", "C", "D", "E", "F", "G", "H", "K", "M", "N", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y");
$Zahlen=array("2", "3", "4", "5", "6", "7", "8", "9");
for($i=0, $Code=""; strlen($Code)<6; $i++)
{
if(rand(0, 1)==0 && isset($Buchstaben))
{
$Buchstabe=$Buchstaben[rand(0, count($Buchstaben))];
$Code.=$Buchstabe;
$AngezeigterCode.=$Buchstabe." ";
}
else
{
$Zahl=$Zahlen[rand(0, count($Zahlen))];
$Code.=$Zahl;
$AngezeigterCode.=$Zahl." ";
}
}
$AngezeigterCode=trim($AngezeigterCode);
?>
Alles anzeigen
grafischer-code.php
<?php
$Grafik=imagecreatefrompng("hintergrund.png");
$Rahmenmass=imagettfbbox(20, 0, "mistral.ttf", $_REQUEST['Code']);
$Rahmenmass[5]*=-1;
$TextBreite=(200-$Rahmenmass[2])/2;
$TextHoehe=((50-$Rahmenmass[5])+($Rahmenmass[5]*2))/2;
$Textfarbe = imagecolorallocate($Grafik, 128, 128, 128);
imagettftext($Grafik, 20, 0, $TextBreite, $TextHoehe, $Textfarbe, "mistral.ttf", $_REQUEST['Code']);
imagepng($Grafik);
?>
Alles anzeigen
Also er zeigt mir zwar an das er ein bild erstellen will, aber dann kommt immer dieses Bild an [Blockierte Grafik: http://www.rrelmy.ch/playing//play.png] der pfad wird richtig angezeigt zum bild.
Also.
Da hat es einige ungereimtheiten in dem Source.
* Wie überprüfst du ob der Code richtig ist? Ich würde ihn in eine Session schreiben und ev. noch MD5 verschlüsseln.
* Du hast den header vergessen. «header('Content-type: image/png');»
* Dein Code generator ist nicht gerade schlau, alle 2 bis 3 mal habe ich mindestens 2 gleiche Zeichen drin.
Also dein neuer Code von der «grafischer-code.php» wäre:
<?php
header('Content-type: image/png');
$Grafik=imagecreatefrompng("hintergrund.png");
$Rahmenmass=imagettfbbox(20, 0, "mistral.ttf", $_REQUEST['Code']);
$Rahmenmass[5]*=-1;
$TextBreite=(200-$Rahmenmass[2])/2;
$TextHoehe=((50-$Rahmenmass[5])+($Rahmenmass[5]*2))/2;
$Textfarbe = imagecolorallocate($Grafik, 128, 128, 128);
imagettftext($Grafik, 20, 0, $TextBreite, $TextHoehe, $Textfarbe, "mistral.ttf", $_REQUEST['Code']);
imagepng($Grafik);
?>
Alles anzeigen
Dann sollte der Aufruf von der Datei ein Bild ausgeben.
Noch ein paar Tips:
* verwende bei variablen keine Grossbuchstaben
* verwende $_POST oder $_GET wenn du weisst von wo der Request kommt.
ob der code richtig ist, überprüfe ich mit einer if abfrage.
if(strtolower($_POST['Code']) == strtolower($_POST['EingegebenerCode']))
{
echo"Der Code wurde richtig eingegeben!";
}
else
{
$fehler="Bitte geben Sie eine den Richtigen Code ein.
";
}
danke für die tipps und die änderrung. werde es gleich mal ausprobieren.
also habs jetzt mit der geänderten datei ausprobiert. Aber leider zeigt er mir das bild immer noch nicht an.
Ich lasse mir das bild so anzeigen wo der code drinne stehen soll.
<input maxlength="6" name="EingegebenerCode" size="6" type="text"> [img]captcha/grafischer-code.php?Code=<?php echo$AngezeigterCode; ?>[/img]
Vielleicht ist dort ein Fehler den ich übersehen habe...
Dann hab ich mal ne andere Frage, da es mit dem Captcha auf dem Server ja anscheinend nicht funktioniert.
Wie könnte ich mein Gästebuch denn noch vor diesen Spam einträgen schützen??
Normalerweise hatte ich immer:
1. Einträge werden erst durch den Admin freigeschaltet
2. Die Sicherheitsabfrage per Captcha.
aber das erste alleine reicht ja leider nicht, da ich ja im admin bereich die Spam einträge trotzdem habe und löschen muss.
Habe es auch schon mit einem Filter versucht, sprich das der beiträge wo zb. im Betreff None usw. steht nicht ausführt. aber die liste könnte man ja ewig lange führen und müsste sie immer aktuell halten....
vielen dank
Kannst ja ne super Rechenaufgabe machen :O
Hallo zusammen,
wollte das jetzt mit der Rechenaufgaben machen und hab mir was zusammen gebastelt.
Nur leider läuft das ganze nicht so wie es soll.
Rechnen tut mir das script richtig und gibt mir auch das richtige ergebniss aus.
aber wenn ich jetzt ne abfrage einbaue von wegen, ist das eingegebene ergebniss gleich mit dem was aus der rechnung hervor geht, soll er mir sagen das ergebniss ist richtig ansonsten das ergebniss ist falsch.
Aber irgendwie gibt er mir immer aus, dass das ergebniss falsch ist.
Nur leider finde ich den fehler nicht...
<form method="POST" action="index.php">
<input type="hidden" name="send" value="send">
<?php
$zahlen = array(
"10",
"20",
"30",
"40",
"50"
);
$zahl=mt_rand(30,count($zahlen)-1);
$rechnung=$zahl+$zahl;
echo"
$rechnung";
echo"
";
echo"$zahl";
echo"+";
echo"$zahl";
echo"<input type=\"text\" name=\"ergebniss\" size=\"4\"><input type=\"submit\" value=\"Absenden\" name=\"submit\">
";
if($_POST['ergebniss'] == $rechnung)
{
echo"Das ergebniss ist Richtig";
}
else
{
echo"Das Ergebniss ist leider falsch";
}
?>
</form>
Alles anzeigen
vielleicht könnt ihr mir helfen.
Danke schonmal
kann mir wirklich keiner helfen???
wäre super nett wenn dort mal jemand drüber schaut..
Danke
Wie soll das auch funktionieren? Das Script berechnet die Zahl doch jedesmal neu aus! Und somit ist das Ergebnis auch (meistens) unterschiedlich. Die Zahl, die per mt_rand ermittelt wird, solltest du in einer Session speichern und diese dann zur Überprüfung nehmen.
danke ich werd dies mal versuchen.