• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP - Problem mit Captcha/Session-Variable

colonelc

New member
Hallo zusammen,

folgendes Problem wird mich demnächst zum Wahnsinn treiben:
Ich will auf meiner Webseite ein Captcha verwenden, und zwar habe ich da eine Klasse von
Homepage of Pascal Rehfeldt
falls jemandem das was sagt.
Folgende Teile sind funktional (hoffentlich haut das mit dem Code jetzt richtig hin, hab noch nicht viel gepostet hier):

Das ist die Funktion, die für die Anzeige des Captchas zuständig ist:
PHP:
function captcha_anzeigen($color = 0)
    {
    print ("<br />\n<div style = 'clear:both;'>");
    print ("<p>\n<label for = 'captcha' class = 'left'>");
    print ("<img src='scripts/captcha/captcha.php?.gif' alt='CAPTCHA' name = 'captcha' />");
    print ("</label>\n<br />\n<br />\n");
    print ("<input type='text' name='captchastring' id = 'captchastring' size='20' />\n");
    print ("</p>\n");
    print ("<br /><br /><br />");
    print ("<p");
    if ($color != 0)
      {
      print (" style = 'color:red;' ");
      }
    print (">");
    
    print ("<input type='image' src='images/neues_captcha.gif' name='neues_captcha' width= '100px' alt='neues Captcha'   /></p>\n");
    print ("</div>");
      }

Die captcha.php sieht so aus:
PHP:
session_start();

  //Load the Class
  require('./class/captcha.class.php');

  //Create a CAPTCHA
  $captcha = new captcha();
  //Store the String in a session
  $_SESSION['CAPTCHAString'] = $captcha->getCaptchaString();
Der Captcha-String wird dann mit dem vom User eingegebenen String verglichen und im Erfolgsfall wird das Formular verarbeitet.
Mein Problem ist nun folgendes: Im Internet Explorer und in Google Chrome funktioniert das perfekt. Nur im Firefox geht das nicht, die Session-Variable wird nirgends angezeigt wenn man z.B. vardump oder ähnliches verwendet.
EDIT: Gerade habe ich festgestellt, dass wenn ich Cookies im FF aktiviere, dann funktioniert es auch da...aber alle anderen Sessionvariablen werden auch mit ausgeschalteten Cookies per transparenter SID übertragen. Nur diese eine nicht :-(
Das ist natürlich sehr verwunderlich, da es sich ja um serverseitige Programmierung handelt---und jetzt suche ich nach Ideen woran das liegen könnte.
Die Klasse ist etwas länger und ich hoffe eigentlich auch dass sie korrekt arbeitet, deswegen würde ich sie auf Nachfrage posten.

Ich hoffe, das hier ist alles verständlich und jemand hat den richtigen Riecher...

Ciao
colonelc
 
Zuletzt bearbeitet:
Ich kann aus Deinem Beispiel nicht nachvollziehen, wohin Dein Formular geschickt wird, resp. wo die Form-Tags sind. PHP braucht diese, um dort ein verstecktes Inputfeld mit der Session-Id einzufügen, (falls form in
url_rewriter.tags
vorkommt). Wenn Du Deinen generierten Quelltext ansiehst, solltest Du das sehen können.
 
Zurück
Oben