Sessions go crazy

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Sessions go crazy

    Hallo

    ich benutze für meine Captcha-Abfrage Sessions, und zwar so, dass im Captchabild der aktuelle Captchacode gespeichert wird
    PHP-Code:
    session_start();
    $string rand_pass();    // Gibt ein Array zurück
    $_SESSION['capCheck'] = implode(""$string); 
    und in meiner index.php der Code abgefragt wird:
    PHP-Code:
    session_start();
    if(
    $_POST['capcheck'] == $_SESSION['capCheck']) [...] 
    Jetzt der Satz des Jahrhunderts... lokal klappt alles prima, aber auf dem Server....!
    Anfangs war es so dass er mir wirklich vollkommen abstruse Werte in die Session geschrieben hat (wenn überhaupt), Werte die, nach vielfachem Aufrufen, nicht ein mal im Bild vorgekommen sind. Jetzt ist er so weit dass er zwar die Richtigen Codes ausgibt (auf http://efwiki.sourceforge.net/wiki/index.php?Home kann man ganz oben die Ausgabe des $_SESSION-Arrays und unten das Captcha-Image sehen), aber die Session manchmal (zufällig?) einfach leer lässt!

    Hat jemand ne Idee woran's liegen kann?

    EDIT:
    Korrigiere: Er gibt immer noch völig abstruse Werte aus. Auf http://efwiki.sourceforge.net/wiki/index.php?Home könnt ihr oben die Ausgabe des $_SESSION-Array sehen, unten das Captcha Bild. Normalerweise sollte er den Code des letzten Seitenaufrufes anzeigen.
    Zuletzt geändert von Luke; 11.04.2006, 21:54.

  • #2
    was genau macht rand_pass()?

    gruß
    peter
    Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
    Meine Seite

    Kommentar


    • #3
      PHP-Code:
      function rand_pass($anz=4)
      {
          
      $arr1 range(0,9);
          
      $arr2 range("A","Z");
          
      $arr array_merge($arr1,$arr2);
          
      srand((float) microtime() * 10000000);
          
      $rand_keys array_rand($arr$anz);

          for(
      $i=0$i<$anz$i++)
          {
             
      $pass[] = $arr[$rand_keys[$i]];
          }
          return 
      $pass;

      Kommentar


      • #4
        1. häng mal nen zeitstempel ans bild an ... im ff krieg ich häufig dieselbe array-ausgabe
        2. häng mal explizit die session-id ans bild ...
        2.1 gleiches auch mal im form mit einbauen

        mir scheint, dir geht die session flöten.
        Kissolino.com

        Kommentar


        • #5
          >2. häng mal explizit die session-id ans bild ...
          >2.1 gleiches auch mal im form mit einbauen

          Urks... wollt ich eigentlich verhindern.. ist schließlich n wiki. Ich versuch mal die SID über POST zu geben, hab aber ewiglich nicht mehr mit sessions gearbeitet, wie verklicker ich dem nochmal die Session mit der übergebenen ID zu verwenden?

          Kommentar


          • #6
            PHP-Code:
            echo '... src="bild.php?'.session_name().'='.session_id().'&amp;amp;'.time().'" ...'
            analog dazu ein hidden field ins formular ... edit: sehe grad, das macht dein php eh
            Kissolino.com

            Kommentar


            • #7
              Immer noch, jedes 2te mal leer, manchmal zieht er sich die Werte "an den Haaren herbei"... . Auch wenn ich manuell die SessID an die URL hänge

              Kommentar


              • #8
                register_globals = on ?

                Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                Wie man Fragen richtig stellt

                Kommentar


                • #9
                  ich würd das script mal komplett rückbauen. also nur die reine captcha funktionalität testen. mir scheint eher, dass du unter bestimmten umständen die session "tötest". ich konnte einen eintrag mit captcha machen, danach nicht mehr.
                  Kissolino.com

                  Kommentar


                  • #10
                    Der selbe Driet...: http://efwiki.sourceforge.net/wiki/captcha/captcha.php

                    PHP-Code:
                    session_start();

                    if(isset(
                    $_POST['form_sent']))
                    {
                        echo 
                    "\$_SESSION['capCheck']: ".$_SESSION['capCheck']."<br />";
                        echo 
                    "\$_POST['capCheck']: ".$_POST['capcheck']."<br /><hr />";
                    }

                    echo 
                    "<form action=\"captcha.php?".session_name()."=".session_id()."\" method=\"post\" name=\"editform\" enctype=\"multipart/form-data\" >";
                    echo 
                    "    <input type=\"hidden\" name=\"".session_name()."\" value=\"".session_id()."\" />";
                    echo 
                    "    <input type=\"hidden\" name=\"form_sent\" value=\"true\" />";
                    echo 
                    "    <fieldset style=\"margin-top: 5px;\">";
                    echo 
                    "        <legend>Captcha</legend>";
                    echo 
                    "        <div style=\"vertical-align:middle;\">";
                    echo 
                    "            <img src=\"images/captcha.png.php?".session_name()."=".session_id()."&amp;time=".time()."\" name=\"captcha\" id=\"captcha\" width=\"60\" height=\"25\" />";
                    echo 
                    "            <input name=\"capcheck\" size=\"4\" style=\"margin:0px; display:inline;\" />";
                    echo 
                    "            <input type=\"button\" name=\"capreload\" value=\"Reload Captcha Image\" onclick=\"captchaReload()\" />";
                    echo 
                    "            <input type=\"submit\" name=\"submit_comment\" value=\"Submit\" />";
                    echo 
                    "        </div>";
                    echo 
                    "    </fieldset>";
                    echo 
                    "</form>"
                    Zuletzt geändert von Luke; 13.04.2006, 20:53.

                    Kommentar


                    • #11
                      wie sieht die "captcha.png.php" aus?
                      Kissolino.com

                      Kommentar


                      • #12
                        Lokal funktioniert's natürlich einwandfrei...

                        Kommentar


                        • #13
                          hast du nen anderen hoster zur verfügung? vielleicht ist sourceforge das problem (was ich mir fast nicht vorstellen kann)?
                          Kissolino.com

                          Kommentar


                          • #14
                            Tut's wohl...

                            http://www.hd-bombach.de/luke/wiki/captcha/captcha.php

                            Kommentar


                            • #15
                              Original geschrieben von ghostgambler
                              register_globals = on ?
                              Original geschrieben von Wurzel
                              wie sieht die "captcha.png.php" aus?

                              Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                              bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                              Wie man Fragen richtig stellt

                              Kommentar

                              Lädt...
                              X