Sessions, Variablen und Gültigkeitsbereiche

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

  • Sessions, Variablen und Gültigkeitsbereiche

    Hi There

    Ich habe ein kleines Problem. Wenn ich Variablen in Funktionen definiere, sind sie global nicht lesbar, oder?
    Ich habe eine Funktion, an deren ende

    $variable = time();
    session_register('variable');

    steht. Danach geht das Script noch weiter, andere Funktionen werden abgearbeitet etc.

    In der Session deklaration nach Sessionstart etc kommt irgendwann:

    if(session_is_registered('variable')
    {
    $variable+3*60
    etc...
    }

    Bei einem Link auf PHP_Self soll nun festgestellt werden, dass variable registriert ist, das funktioniert. aber mit $variable arbeiten kann ich nicht, weil er deren Wert nicht kennt. Wîrd eine registrierte Variable denn global nicht zugänglich? Weis jemand eine Lösung? Dafür wäre ich echt supi dankbar!!!

    Phish, der heute bei Kopfschmerzen Coden wollte... aber knallhart gescheitert ist...

  • #2
    ...

    Eine Lösung kann ich zwar nicht bieten, aber registrierte Variablen werden Global verfügbar....

    Kommentar


    • #3
      Ich bin mir da jetzt nicht so sicher, aber versuchs mal mit nem Return der Variablen in der Funktion.
      Schreib in die Funkton ( ans Ende ! ):

      function blabla (blabla...) {
      ...
      . hier die
      . Befehle der
      . Funktion
      .

      return $variable;
      }


      Wenn die Variable aber in der Session registriert ist, müsste sie ohnehin global zur Verfügung stehen.
      [font=comic sans ms]ups, never mind,
      it´s just me[/font]

      Kommentar


      • #4
        Original geschrieben von Raphael 69
        Wenn die Variable aber in der Session registriert ist, müsste sie ohnehin global zur Verfügung stehen.
        Jau, aber hier gilt das gleiche wie bei Cookies: Die in der Session registrierten Variablen werden erst bekannt, wenn die Session-ID vom Browser zurück an den Server gesendet wird - also beim nächsten Seitenaufruf, nicht in dem Skript in dem sie registriert werden.
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          Aber das ist doch so!!!

          Es geht in etwa so

          Ganz oben im File steht
          if(session_is_registered('signblock'))
          {
          echo "registriert ist $signblock";
          }

          und dann weiter unten wir eine funktion aufgerufen... in dieser werden mehrere funktionen aufgerufen und abgearbeitet unter anderem eine in der am schluss:

          $signblock = 33;
          session_register('signblock');

          steht. Nun wird die page erneut aufgerufen und es wird erkannt das signblock registriert ist denn es steht ganz oben auf der site
          "registriert ist "
          mehr net...

          Und ich bin echt am Ende mit dem Latein, irgenwie muss da was mit der Variablengültigkeit sein oder so...

          Phish... völlig verzweifelt

          Kommentar


          • #6
            Habs grad gelöst...

            Es lag am gültigkeitsbereicht... ich habe jetzt einfach unter das if(session_is_registered('signblock')
            in einem else $signblock den wert notregistered zugewiesen. Da die Variable er erst wenn registriert angezeigt wird macht das nix und nun war ihr Gültigkeitsbereich global und es ging!!!

            Thx anyway!!!
            Schlaft gut

            Phish

            Kommentar

            Lädt...
            X