Stoppt-den-Spam.info Foren-Übersicht
RegistrierenSuchenFAQMitgliederlisteBenutzergruppenLogin
Eigentlich dachte ich, ich hätte es verstanden...
Gehe zu Seite 1, 2  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    Stoppt-den-Spam.info Foren-Übersicht -> Rechen Captcha
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 20.08.2008, 10:05    Titel: Eigentlich dachte ich, ich hätte es verstanden... Antworten mit Zitat

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 Very Happy


Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:51, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Seven-Secrets



Anmeldedatum: 20.08.2008
Beiträge: 6

BeitragVerfasst am: 20.08.2008, 11:43    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Rob [Admin]
Site Admin


Anmeldedatum: 23.12.2006
Beiträge: 132

BeitragVerfasst am: 20.08.2008, 12:40    Titel: Antworten mit Zitat

Also der Fehler liegt ganz klar hier:
http://www.dragonviews.com/di/rechen-captcha.php

Zeile 3 des Scripts:
unset ($_SESSION['rechen_captcha_spam'];

HIer fehlt die ) Klammer.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 21.08.2008, 11:55    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Rob [Admin]
Site Admin


Anmeldedatum: 23.12.2006
Beiträge: 132

BeitragVerfasst am: 22.08.2008, 06:02    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 22.08.2008, 09:18    Titel: Antworten mit Zitat

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 Embarassed

Jetzt funktioniert alles Very Happy
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 22.08.2008, 10:34    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Rob [Admin]
Site Admin


Anmeldedatum: 23.12.2006
Beiträge: 132

BeitragVerfasst am: 22.08.2008, 10:40    Titel: Antworten mit Zitat

poste doch nochmals deine geänderte/aktuelle formmail2.php
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 22.08.2008, 10:44    Titel: Antworten mit Zitat

Formmail2.php:

Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rob [Admin]
Site Admin


Anmeldedatum: 23.12.2006
Beiträge: 132

BeitragVerfasst am: 22.08.2008, 10:51    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 22.08.2008, 11:01    Titel: Antworten mit Zitat

Ok, danke. Aber leider keine Änderung was die Anzeige nach dem Absenden angeht Confused

Formmail2.php:


Zuletzt bearbeitet von honolulu85 am 08.11.2008, 09:52, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Rob [Admin]
Site Admin


Anmeldedatum: 23.12.2006
Beiträge: 132

BeitragVerfasst am: 22.08.2008, 11:06    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 22.08.2008, 11:12    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Rob [Admin]
Site Admin


Anmeldedatum: 23.12.2006
Beiträge: 132

BeitragVerfasst am: 22.08.2008, 11:18    Titel: Antworten mit Zitat

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&uuml;ck</a> und f&uuml;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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
honolulu85



Anmeldedatum: 20.08.2008
Beiträge: 8

BeitragVerfasst am: 22.08.2008, 11:27    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Stoppt-den-Spam.info Foren-Übersicht -> Rechen Captcha Alle Zeiten sind GMT
Gehe zu Seite 1, 2  Weiter
Seite 1 von 2

 
  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
You can attach files in this forum
You can download files in this forum