Hi all,
Habe einen Formular gecoded, der eine captcha Abfrage enthält. Local (xampp) funktioniert alles super, jedoch auf dem Server wird das Bild nicht angezeigt. Muss beim Provider etwas enabled sein oder evtl. etwas in der php.ini verändern?
Hier mein Code:
Formular:
CODE
<html>
<head>
<title>Mailformular</title></head>
<body>
<form action="captcha.php?doit=check" method="post">
<br>Name:
<input type="text" name="name" size="15">
<br>E-Mail:
<input type="text" name="email" size="15">
<br>Telefon Nr:
<input type="text" name="telefon" size="15">
<br>Betreff:
<input type="text" name="betreff" size="15">
<br>Nachricht:<br>
<textarea name="nachricht" cols="40" rows="8"></textarea>
<br>
<img src="captcha.php?doit=gen">
<input type="text" name="sec_eingabe" size="5">
<br>
<input type="submit" value="Anfrage senden">
</form>
</body>
</html>
Captcha:
CODE
<?php
//Das Starten der Session
session_start();
//Wenn das Script die Eingabe Checken soll
if($_GET['doit'] == "check"){
if( $_POST['sec_eingabe'] == $_SESSION['captcha'] ){
//Löschen der Session-var
unset($_SESSION['captcha']);
//Datum der Sendung
$datum = date("d.m.Y - H:i");
//Hier bitte die Empfaenger-Mailadresse einfuegen
$empfaenger = "meine@adresse.ch";
//Zeilenende ersetzen
$suchen = "\r";
$ersetzen = "\n";
$kommentarp = str_replace($suchen,$ersetzen,$_POST["nachricht"]);
$betreff = $_POST['betreff'];
//Ausfuehren der Mailfunktion
if(mail("$empfaenger", "$betreff",
"
Name: ".$_POST["name"]."
E-Mail: ".$_POST["email"]."
Telefon Nr: ".$_POST["telefon"]."
Nachricht: ".$kommentarp."
Datum und Zeit: $datum
")){
echo('Folgende Angaben wurden versandt:<br><br>' . $_POST["name"] . '<br>' . $_POST["email"] . '<br>' . $_POST["telefon"] . '<br>' . $_POST["betreff"] . '<br>' . nl2br($kommentarp));
}
}
else {
echo("Bitte prüfen Sie Ihre Eingabe im Sicherheitsfeld! &nbsp;<a href='mailform.php'>&laquo; zurück</a>");
}
}
//Wenn das Script ein Bild generieren soll
elseif ($_GET['doit'] == "gen"){
//Feldwert wird erstellt
$text = rand(1000,10000);
//Feldwert wird in Session-Array gespeichert
$_SESSION['captcha'] = $text;
header('Content-type: image/png');
$img = ImageCreateFromPNG('security_background.png');
$color = ImageColorAllocate($img, 0, 0, 0);
$ttf = 'arial.ttf';
$ttfsize = 25;
$angle = rand(0,5);
$text_x = rand(5,50);
$text_y = 35;
imagettftext($img, $ttfsize, $angle, $text_x, $text_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
}
?>
Evtl. kann mir jemand weiterhelfen...leider hatte ich mit Google nicht wirklich Erfolg.
Danke und Gruss
Simi
Habe einen Formular gecoded, der eine captcha Abfrage enthält. Local (xampp) funktioniert alles super, jedoch auf dem Server wird das Bild nicht angezeigt. Muss beim Provider etwas enabled sein oder evtl. etwas in der php.ini verändern?
Hier mein Code:
Formular:
CODE
<html>
<head>
<title>Mailformular</title></head>
<body>
<form action="captcha.php?doit=check" method="post">
<br>Name:
<input type="text" name="name" size="15">
<br>E-Mail:
<input type="text" name="email" size="15">
<br>Telefon Nr:
<input type="text" name="telefon" size="15">
<br>Betreff:
<input type="text" name="betreff" size="15">
<br>Nachricht:<br>
<textarea name="nachricht" cols="40" rows="8"></textarea>
<br>
<img src="captcha.php?doit=gen">
<input type="text" name="sec_eingabe" size="5">
<br>
<input type="submit" value="Anfrage senden">
</form>
</body>
</html>
Captcha:
CODE
<?php
//Das Starten der Session
session_start();
//Wenn das Script die Eingabe Checken soll
if($_GET['doit'] == "check"){
if( $_POST['sec_eingabe'] == $_SESSION['captcha'] ){
//Löschen der Session-var
unset($_SESSION['captcha']);
//Datum der Sendung
$datum = date("d.m.Y - H:i");
//Hier bitte die Empfaenger-Mailadresse einfuegen
$empfaenger = "meine@adresse.ch";
//Zeilenende ersetzen
$suchen = "\r";
$ersetzen = "\n";
$kommentarp = str_replace($suchen,$ersetzen,$_POST["nachricht"]);
$betreff = $_POST['betreff'];
//Ausfuehren der Mailfunktion
if(mail("$empfaenger", "$betreff",
"
Name: ".$_POST["name"]."
E-Mail: ".$_POST["email"]."
Telefon Nr: ".$_POST["telefon"]."
Nachricht: ".$kommentarp."
Datum und Zeit: $datum
")){
echo('Folgende Angaben wurden versandt:<br><br>' . $_POST["name"] . '<br>' . $_POST["email"] . '<br>' . $_POST["telefon"] . '<br>' . $_POST["betreff"] . '<br>' . nl2br($kommentarp));
}
}
else {
echo("Bitte prüfen Sie Ihre Eingabe im Sicherheitsfeld! &nbsp;<a href='mailform.php'>&laquo; zurück</a>");
}
}
//Wenn das Script ein Bild generieren soll
elseif ($_GET['doit'] == "gen"){
//Feldwert wird erstellt
$text = rand(1000,10000);
//Feldwert wird in Session-Array gespeichert
$_SESSION['captcha'] = $text;
header('Content-type: image/png');
$img = ImageCreateFromPNG('security_background.png');
$color = ImageColorAllocate($img, 0, 0, 0);
$ttf = 'arial.ttf';
$ttfsize = 25;
$angle = rand(0,5);
$text_x = rand(5,50);
$text_y = 35;
imagettftext($img, $ttfsize, $angle, $text_x, $text_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
}
?>
Evtl. kann mir jemand weiterhelfen...leider hatte ich mit Google nicht wirklich Erfolg.
Danke und Gruss
Simi