ERLEDIGT
JA
JA
ANTWORTEN
7
7
ZUGRIFFE
768
768
EMPFEHLEN
-
Hey,
habe ein Script von der Page Stoppt-den-Spam.info in meine Homepage eingebaut, klappt leider noch nicht ganz so wie es soll. Es handelt sich um ein CAPTCHA Code. Die Anzeige des Codes funktioniert einwandfrei, das Problem stellt sich bei dem Sichern der Daten. Das Formular prüft ob der eingegebene CAPTCHA Code mit dem vorgegebenen übereinstimmt und 'sollte' den Eintrag speichern. Obwohl ich den richtigen Code eintrage sichert er nichts.
Der Code:
captcha.php
Im FormularPHP-Code:<?php
//ERSTELLEN EINES SICHERHEITSCODES
session_start();
unset($_SESSION['captcha_spam']);
$text = rand(1000,10000); //Zufallszahl
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['captcha_spam'] = encrypt($text, "8h384ls94"); //Key
$_SESSION['captcha_spam'] = str_replace("=", "", $_SESSION['captcha_spam']);
header('Content-type: image/png');
$img = ImageCreateFromPNG('captcha.PNG'); //Backgroundimage
$color = ImageColorAllocate($img, 0, 0, 0); //Farbe
$ttf = "fontf"; //Schriftart
$ttfsize = 25; //Schriftgrösse
$angle = rand(0,5);
$t_x = rand(5,50);
$t_y = 35;
imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
imagepng($img);
imagedestroy($img);
?>
1. Eingabefeld
2. Abfrage ob falsche Eingabe
3. Ausgabe des Codes
Überprüfung ob der vorgegebene mit dem eingetragenen Code übereinstimmtPHP-Code://1.
<input type="text" name="captcha" maxlength="4">
//2.
if(session_is_registered("captcha")){
echo "<br><font color='#9B3C3C'><b>Sicherheitscode inkorrekt eingegeben!</b></font>";
session_unregister("captcha");
}
//3.
<img src="captcha.php" border="0" title="sicherheitscode">
Es geht nur um die markierten Zeilen die ersten und letzten sind teil des Gästebuchscripts. Wie gesagt trotz korrekter Eingabe wird der Eintrag nicht gespeichert. Kann mir da evtl. jemand weiterhelfen? =/PHP-Code://if($_GET['action']=="save")
// {
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);
}
$sicherheits_eingabe = encrypt($_POST['captcha'], "8h384ls94");
$sicherheits_eingabe = str_replace("=", "", $sicherheits_eingabe);
if($sicherheits_eingabe == $_SESSION['captcha_spam']){
unset($_SESSION['captcha_spam']);
//speichern der daten
}else{
session_register("captcha");
}
// }
Link: www.fahrrad-warscheid.de/html/gb.php
Greetz
Zusatzinfo:
Ich nehme an es liegt an der Session. Eigentlich müsste ja die session captcha registiert werden falls kein Eintrag vorgenommen wird, anders gesagt im Falle einer inkorrekten Eingabe des Codes. Sie wird aber nicht registiert...
-
25.03.07 13:28 #2
Da du mit $_GET arbeitest nehme ich an, dass register_globals deaktiviert ist (was auch richtig ist), daher funktioniert session_register() nicht.
Stattdessen solltest du mit $_SESSION arbeiten.
PHP-Code:$_SESSION['captcha'] = true;
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
Problem leider nicht behoben =/
gleiche Fehler wie bisher...
habe else schleife erweitert:
ohne Erfolg er leitet nicht weiter, das heißt er geht nicht in die else schleife. Müsste er aber oder nicht?!PHP-Code:}else{
$_SESSION['captcha'] = true;
echo "<meta http-equiv='refresh' content='0; URL=?action=neu'>";
}
Geändert von Nepheus (25.03.07 um 14:50 Uhr)
-
29.03.07 13:29 #4
Hast du den error_reporting mal auf E_ALL gesetzt?
PHP-Code:error_reporting ( E_ALL );
-
Wo muss ich das denn reinschreiben und was macht das? Bin nicht so der Profi in PHP sorry =/
-
29.03.07 20:21 #6
error_reporting()
Ein Blick in die Funktionsreferenz bringt immer etwas
KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
30.03.07 09:21 #7
Hm, du könntest dir natürlich auch mein Tutorial mal ansehen

http://www.tutorials.de/forum/php-tu...-freetype.html
-
Problem gelöst.
Habe die "Save" Funktion in eine neue Datei gepackt. Der Fehler war wohl was mit session. Da in der neuen Datei die session nochmal gestartet wurde wurde das problem wohl von selbst behoben, naja weiß auch nich genau trotzdem thx an euch =)
Ähnliche Themen
-
CAPTCHA Problem
Von walle_89 im Forum PHPAntworten: 10Letzter Beitrag: 08.03.09, 21:07 -
Captcha-Problem
Von Headymaster im Forum PHPAntworten: 9Letzter Beitrag: 18.06.08, 17:47 -
Captcha Problem
Von Geordi im Forum PHPAntworten: 1Letzter Beitrag: 27.12.07, 21:42 -
Captcha Problem
Von d2mike im Forum PHPAntworten: 2Letzter Beitrag: 09.01.07, 12:12 -
captcha problem
Von croqued-monsieur im Forum PHPAntworten: 4Letzter Beitrag: 14.06.06, 10:30





Zitieren

Login






[PHP] [Codeschnipsel] ImageColor aus HTML-Farbcodierung erstellen