Hi,
Es geht um ein ganz normales CaptchaScript (modifiziertes Script von stoppt-den-spam.info, da ich mir nie Mühe gemacht habe eins vollständig selbst zu schreiben
Hier der Quellcode:
Alles anzeigen
Ich muss dazu sagen, auf meinem localhost und einem Space auf Funpic funktioniert alles tadellos: Ich binde die Datei per <img src="....captcha.php" /> ein, prüfe nach dem Absenden des Buttons die Variable $_SESSION['captcha'] bzw. vergleiche sie mit der Eingabe und gebe daraufhin eine Meldung aus (obs geklappt hat oder nicht).
Auf meinem Webspace funktioniert das Ganze aber -nicht.
Wieso, kann ich bis jetzt nicht sagen. Ich dachte zuerst an fehlerhafte Sessioneinstellungen und verglich diese. Da session_auto_start es verhinderte session_save_path zu verändern, ließ ich diese Einstellung von meinem Webhoster auf off stellen. Nun laufen alle session-Dokumente über einen Ordner und doch funktioniert es nicht. Also habe ich meine Log-Klasse eingebaut, um zu sehen, was bei einem Aufruf der index.php geschieht und tada, folgendes sehe ich:
[index.php, in der das Bild captcha.php eingebettet wurde, wurde aufgerufen]
Log:
17:51 Captcha-Aufruf mit "hZg7W"
17:51 Captcha-Aufruf mit "FAhfC"
17:51 Captcha-Aufruf mit "AWYCcA"
Ich bin verdutzt und wiederhole den Vorgang. Selbes Ergebnis. Es werden drei (!!) Ergebnisse erzeugt. Als ob die Datei drei Mal aufgerufen wurde. Ich bin misstrauisch und rufe die Datei captcha.php direkt auf.
Log:
17:53 Captcha-Aufruf mit "ehGF5s"
17:53 Captcha-Aufruf mit "Jnt3Rt"
17:53 Captcha-Aufruf mit "gxYs"
Ich habe bewusst -ein einziges Mal- geladen. Übrigens ist der mittlere Code (Jnt3Rt) derjenige, der am Bild angezeigt wurde. Ich verstehe die Welt nicht mehr.. Daraufhin habe ich das Ganze auf meinem localhost wiederholt und siehe da: Jeder log-Eintrag wird einmal getätigt.
Nun weiß ich einfach nicht mehr weiter. Ich hoffe ihr könnt mir helfen - könnte es eine Einstellung geben, an der das liegt? Sieht jemand eine bösartige Schleife, die nur bewusst im Web agiert, um dann alles zu verdreifachen?
Danke für eure Hilfe..
lG
Es geht um ein ganz normales CaptchaScript (modifiziertes Script von stoppt-den-spam.info, da ich mir nie Mühe gemacht habe eins vollständig selbst zu schreiben

Hier der Quellcode:
Quellcode
- <?php
- session_save_path('.../irgendeinKorrekterOrdner');
- session_start();
- /*if(isset($_SESSION['captcha'])){
- unset($_SESSION['captcha']);
- }*/
- include('...class-log.php');
- $log = new Log('....logs/');
- function randomString($len) {
- function make_seed(){
- list($usec , $sec) = explode (' ', microtime());
- return (float) $sec + ((float) $usec * 100000);
- }
- srand(make_seed());
- $possible="ABCDEFGHJKLMNPRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789";
- $str="";
- while(strlen($str)<$len) {
- $str.=substr($possible,(rand()%(strlen($possible))),1);
- }
- return($str);
- }
- $z = rand(4,6);
- $text = randomString($z);
- $_SESSION['captcha'] = $text;
- $log->report('Captcha-Aufruf mit "' . $text . '"');
- header('Content-type: image/png');
- $i = rand(0,6);
- $img = ImageCreateFromPNG('captcha' . $i . '.PNG');
- $color = ImageColorAllocate($img, 0, 0, 0);
- $ttf = "XFILES.TTF";
- $ttfsize = 25;
- $angle = rand(0,5);
- //distance from the left border
- $max = 60/strlen($text);
- $t_x = rand(5,$max);
- $t_y = 35;
- imagettftext($img, $ttfsize, $angle, $t_x, $t_y, $color, $ttf, $text);
- imagepng($img);
- imagedestroy($img);
- ?>
Ich muss dazu sagen, auf meinem localhost und einem Space auf Funpic funktioniert alles tadellos: Ich binde die Datei per <img src="....captcha.php" /> ein, prüfe nach dem Absenden des Buttons die Variable $_SESSION['captcha'] bzw. vergleiche sie mit der Eingabe und gebe daraufhin eine Meldung aus (obs geklappt hat oder nicht).
Auf meinem Webspace funktioniert das Ganze aber -nicht.
Wieso, kann ich bis jetzt nicht sagen. Ich dachte zuerst an fehlerhafte Sessioneinstellungen und verglich diese. Da session_auto_start es verhinderte session_save_path zu verändern, ließ ich diese Einstellung von meinem Webhoster auf off stellen. Nun laufen alle session-Dokumente über einen Ordner und doch funktioniert es nicht. Also habe ich meine Log-Klasse eingebaut, um zu sehen, was bei einem Aufruf der index.php geschieht und tada, folgendes sehe ich:
[index.php, in der das Bild captcha.php eingebettet wurde, wurde aufgerufen]
Log:
17:51 Captcha-Aufruf mit "hZg7W"
17:51 Captcha-Aufruf mit "FAhfC"
17:51 Captcha-Aufruf mit "AWYCcA"
Ich bin verdutzt und wiederhole den Vorgang. Selbes Ergebnis. Es werden drei (!!) Ergebnisse erzeugt. Als ob die Datei drei Mal aufgerufen wurde. Ich bin misstrauisch und rufe die Datei captcha.php direkt auf.
Log:
17:53 Captcha-Aufruf mit "ehGF5s"
17:53 Captcha-Aufruf mit "Jnt3Rt"
17:53 Captcha-Aufruf mit "gxYs"
Ich habe bewusst -ein einziges Mal- geladen. Übrigens ist der mittlere Code (Jnt3Rt) derjenige, der am Bild angezeigt wurde. Ich verstehe die Welt nicht mehr.. Daraufhin habe ich das Ganze auf meinem localhost wiederholt und siehe da: Jeder log-Eintrag wird einmal getätigt.
Nun weiß ich einfach nicht mehr weiter. Ich hoffe ihr könnt mir helfen - könnte es eine Einstellung geben, an der das liegt? Sieht jemand eine bösartige Schleife, die nur bewusst im Web agiert, um dann alles zu verdreifachen?
Danke für eure Hilfe..
lG
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von PHP0Kid ()