Sessions go crazy

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 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.
    Last edited by 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

    Comment


    • #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;

      Comment


      • #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

        Comment


        • #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?

          Comment


          • #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

            Comment


            • #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

              Comment


              • #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

                Comment


                • #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

                  Comment


                  • #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>"
                    Last edited by Luke; 13-04-2006, 20:53.

                    Comment


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

                      Comment


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

                        Comment


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

                          Comment


                          • #14
                            Tut's wohl...

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

                            Comment


                            • #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

                              Comment

                              Working...
                              X