| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 20.08.2008, 10:05 Titel: Eigentlich dachte ich, ich hätte es verstanden... |
|
|
Ich war ganz brav, habe alles so gemacht wie beschrieben und es auf meiner alten Webseite getestet - hat alles super funktioniert. Nun hab ich es auf meiner neuen Seite eingebaut und es funktioniert nicht. Erst dachte ich es liegt an 1&1, weil die beim letzten Mal auch etwas Zeit gebraucht haben, bis das Captcha angezeigt wurde, aber seit gestern tut sich gar nichts. Das Bild wird nicht angezeigt und ich finde den Fehler nicht. Irgendwer eine Idee?
rechen-captcha.php:
<?php
session_start();
unset ($_SESSION['rechen_captcha_spam'];
$zahl1 = rand(10,20);
$zahl2 = rand(1,10);
$operator = rand(1,2);
if($operator == "1" ) {
$operatorzeichen = "+";
$ergebnis = $zahl1 + $zahl2;
}
else {
$operatorzeichen = "-";
$ergebnis = $zahl1 - $zahl2;
}
function encrypt($string, $key {
$result = '' ;
for($i=0; $i<strlen ($string); $i++ {
$char = substr($string, $i, 1);
$keychar = substr ($key, ($i % strlen($key)-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$_SESSION['rechen-captcha_spam'] = encrypt($ergebnis, "xyz");
$_SESSION['rechen-captcha_spam'] = str_replace("=","",
$_SESSION['rechen-captcha_spam'] );
$rechnung = $zahl1.$operatorzeichen.$zahl2."=?";
$img = imagecreatetruecolor(80,15);
$schriftfarbe = imagecolorallocate($img,13,28,91);
$hintergrund = imagecolorallocate($img,162,162,162);
imagefill($img,0,0,$hintergrund);
imagestring($img, 3, 2, 0, $rechnung, $schriftfarbe);
header("Content-type: image/png");
imagepng($img);
imagedestroy($img);
?>
Alles ist im gleichen Ordner.
Vielen Dank schon einmal vorab 
Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:51, insgesamt einmal bearbeitet |
|
| Nach oben |
|
 |
Seven-Secrets
Anmeldedatum: 20.08.2008 Beiträge: 6
|
Verfasst am: 20.08.2008, 11:43 Titel: |
|
|
Ich vermute mal, dass es mit folgendem zusammenhängt:
a) 1und1 erlaubt kein png als bild und du muß jpg nehmen
b) formmail2.php kann nicht gehen weil du kein session_start(); am anfang hast, vor jedem anderen Code
c) weiß ich nciht, wie sich das script mit:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de"> verträgt
d) oder die latenz der seite ist zu langsam und aus dem grund wird das script abgebrochen |
|
| Nach oben |
|
 |
Rob [Admin] Site Admin
Anmeldedatum: 23.12.2006 Beiträge: 132
|
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 21.08.2008, 11:55 Titel: |
|
|
| Danke erst einmal für die Tipps. Habe Klammer geschlossen (*peinlich, peinlich*), session_start(); eingefügt, Doctype entfernt (jetzt nur html-Klammer) und das mit dem jpg ausprobiert, aber leider kein anderes Ergebnis erhalten. Mit PNG hatte es ja auch schon einmal funktioniert. Vielleicht noch eine Idee, oder bleibt mir nur die Seite schneller zu machen? |
|
| Nach oben |
|
 |
Rob [Admin] Site Admin
Anmeldedatum: 23.12.2006 Beiträge: 132
|
Verfasst am: 22.08.2008, 06:02 Titel: |
|
|
Nochmals die http://www.dragonviews.com/di/rechen-captcha.php aufrufen und feststellen, dass es immer noch eine Fehlerausgabe gibt.
Parse error: syntax error, unexpected '{', expecting ')' in /homepages/15/d67530696/htdocs/di/rechen-captcha.php on line 18 |
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 22.08.2008, 09:18 Titel: |
|
|
Rob [Admin] hat Folgendes geschrieben:Nochmals die http://www.dragonviews.com/di/rechen-captcha.php aufrufen und feststellen, dass es immer noch eine Fehlerausgabe gibt.
Parse error: syntax error, unexpected '{', expecting ')' in /homepages/15/d67530696/htdocs/di/rechen-captcha.php on line 18
Danke, das mit dem direkt Aufrufen, hatte ich komplett vergessen. So findet man die Fehler natürlich
Jetzt funktioniert alles  |
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 22.08.2008, 10:34 Titel: |
|
|
| Tja, da hab ich mich wohl zu früh gefreut. Das Captcha wird zwar angezeigt, aber jetzt wird mir nach dem Versenden der Mail immer nur angezeigt, dass der Sicherheitscode falsch gewesen sei. D.h. wohl der Fehler liegt im Formmail2.php, beim Einbau. Vielleicht bei der else-Schleife? |
|
| Nach oben |
|
 |
Rob [Admin] Site Admin
Anmeldedatum: 23.12.2006 Beiträge: 132
|
Verfasst am: 22.08.2008, 10:40 Titel: |
|
|
| poste doch nochmals deine geänderte/aktuelle formmail2.php |
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 22.08.2008, 10:44 Titel: |
|
|
Formmail2.php:
Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:52, insgesamt einmal bearbeitet |
|
| Nach oben |
|
 |
Rob [Admin] Site Admin
Anmeldedatum: 23.12.2006 Beiträge: 132
|
Verfasst am: 22.08.2008, 10:51 Titel: |
|
|
session_start(); muss GANZ an den Anfng, vor <html>, also:
<?php
session_start();
?>
<html>
<head>
<META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.dragonviews.com/index.html">
<title>Kontakt</title>
etc.... |
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 22.08.2008, 11:01 Titel: |
|
|
Ok, danke. Aber leider keine Änderung was die Anzeige nach dem Absenden angeht
Formmail2.php:
Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:52, insgesamt einmal bearbeitet |
|
| Nach oben |
|
 |
Rob [Admin] Site Admin
Anmeldedatum: 23.12.2006 Beiträge: 132
|
Verfasst am: 22.08.2008, 11:06 Titel: |
|
|
Lass dir folgende Daten ausgeben:
echo $_POST["sicherheitscode"]."<br>";
echo encrypt($_POST["sicherheitscode"], "xyz")."<br>";
echo $_SESSION['rechen_captcha_spam']."<br>";
Überprüfe ob 3 Werte ausgegeben werden. Das erste sollte deine Eingabe sein und die letzten 2 sollten identish sein. |
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 22.08.2008, 11:12 Titel: |
|
|
Rob [Admin] hat Folgendes geschrieben:Lass dir folgende Daten ausgeben:
echo $_POST["sicherheitscode"]."<br>";
echo encrypt($_POST["sicherheitscode"], "xyz")."<br>";
echo $_SESSION['rechen_captcha_spam']."<br>";
Überprüfe ob 3 Werte ausgegeben werden. Das erste sollte deine Eingabe sein und die letzten 2 sollten identish sein.
Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:54, insgesamt einmal bearbeitet |
|
| Nach oben |
|
 |
Rob [Admin] Site Admin
Anmeldedatum: 23.12.2006 Beiträge: 132
|
Verfasst am: 22.08.2008, 11:18 Titel: |
|
|
Zu Testzwecken deine Datei so anpassen:
<?php
session_start();
?>
<html>
<head>
<META HTTP-EQUIV="REFRESH" CONTENT="5;URL=http://www.dragonviews.com/index.html">
<title>Kontakt</title>
</head>
<body>
<?php
function encrypt($string, $key) {
$result = '';
for($i=0; $i<strlen($string); $i++) {
$char = substr($string, $i, 1);
$keychar = substr($key, ($i % strlen($key))-1, 1);
$char = chr(ord($char)+ord($keychar));
$result.=$char;
}
return base64_encode($result);
}
$Empfaenger = "mymail@maimail.com";
if($_REQUEST['Send'])
{
if(empty($_REQUEST['Name']) || empty($_REQUEST['Email']) || empty($_REQUEST['Nachricht']))
{
echo"Bitte gehen Sie <a href=\"javascript:history.back();\">zurück</a> und füllen Sie alle Felder aus!";
}
else
{
$Mailnachricht = "Sie haben folgende Nachricht erhalten: \n\n";
while(list($Formularfeld, $Wert)=each($_REQUEST))
{
if($Formularfeld!="Send")
{
$Mailnachricht .= $Formularfeld.": ".$Wert."\n";
}
}
$Mailnachricht .= "\nDatum/Zeit: ";
$Mailnachricht .= date("d.m.Y H:i:s");
$Mailbetreff = "Kontakt: ";
$Mailbetreff .= $_REQUEST['Betreff'];
echo $_POST["sicherheitscode"]."<br>";
echo encrypt($_POST["sicherheitscode"], "xyz")."<br>";
echo $_SESSION['rechen_captcha_spam']."<br>";
$sicherheits_eingabe = encrypt($_POST["sicherheitscode"], "xyz");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['rechen_captcha_spam']){
unset($_SESSION['rechen_captcha_spam']);
mail($Empfaenger, $Mailbetreff, $Mailnachricht, "From: ".$_REQUEST['Email']);
echo"Vielen Dank für Ihre Nachricht! Sie werden in 5 Sekunden weitergeleitet. <br>
Drücken Sie <a href=\"javascript:history.back();\">hier</a>, falls Ihr Browser kein automatisches Weiterleiten unterstützt.";;
}
else
{
echo "Der eingetragene Sicherheitscode ist falsch. Ihre Mail wurde nicht versendet. Sie werden in 5 Sekunden weitergeleitet.<br>
Drücken Sie <a href=\"javascript:history.back();\">hier</a>, falls Ihr Browser kein automatisches Weiterleiten unterstützt.";;
}
}
}
?>
</body>
</html> |
|
| Nach oben |
|
 |
honolulu85
Anmeldedatum: 20.08.2008 Beiträge: 8
|
Verfasst am: 22.08.2008, 11:27 Titel: |
|
|
Es werden nur zwei ausgegeben, das erste ist das Rechenergebnis. Das zweite ?? Danach folgt wie üblich die Meldung, dass der Sicherheitscode falsch war und die Weiterleitung.
Zitat:12
q6o=
|
|
| Nach oben |
|
 |
|