kati: Erzeugen und Setzen einer Umgebungsvariable

Hallo zusammen,

ich möchte eine Umgebungsvariable setzen, da ich für bestimmte Daten einen globalen Zugriff haben möchte und über getenv sie abfragen kann. Ich habe folgende Klasse geschrieben:

class Daten {
   var $param;

function Daten($a_param) {
      $this->param = $a_param;
   }

//setzen der globalen Variable $DATEN
   function daten_Setzen() {
      $i = 0;
      if(getenv("DATEN[0]")) $i = count(getenv("DATEN"));
      putenv("DATEN[$i]=$this->param");
   }

//auslesen der globalen Variable $DATEN
   function daten_Auslesen($a_index) {
      if(getenv("DATEN")) return getenv("DATEN[$a_index]");
   }
}

Instanziierung:

$d = new Daten($variable);
$d->daten_Setzen();
$d->daten_Setzen();
$d->daten_Setzen();
//den 1. Index auslesen
echo $d->daten_Auslesen(0);
echo $d->daten_Auslesen(1);
echo $d->daten_Auslesen(2);

Also bin ich auf 2 Probleme gestoßen:

  1. in der Methode daten_Setzen() will ich die Anzahl der Elememnte im Array auslesen, falls das erste Element bereits gesetzt wurde - also es sollte dann bei 1 beginnen. Leider ist die Sache mit count() nicht erledigt - es wird immmer 1 zurückgegeben. Wie kann ich die Anzahl der Elemente in einem Array (==Umgebungsvariable) auslesen ?

  2. wieso verschwindet die Umgebungsvariable nach dem neuen Laden der Seite ? _COOKIE ist ja immer vorhanden - auch die anderen "Superglobals". Hängt es mit der .ini Konfigurationsdatei zusammen ?

Falls ihr wisst, was ich da tun soll, bitte schreiben :-)

danke im voraus
cu kati

  1. Hi,
    hmmm... gute Frage. Meines Wissens nach verfallen die Umgebungsvariablen nach
    einem erneuten Seitenaufruf (irren ist menschlich???)!

    warum versuchst du es nicht mit session variablen, die bleiben immer erhalten
    solange bis sie verfallen oder gelöscht werden...

    session_register() usw....

    Jones

    ---------------

    Hallo zammen,

    ich möchte eine Umgebungsvariable setzen, da ich für bestimmte Daten einen globalen Zugriff haben möchte und über getenv sie abfragen kann. Ich habe folgende Klasse geschrieben:

    class Daten {
       var $param;

    function Daten($a_param) {
          $this->param = $a_param;
       }

    //setzen der globalen Variable $DATEN
       function daten_Setzen() {
          $i = 0;
          if(getenv("DATEN[0]")) $i = count(getenv("DATEN"));
          putenv("DATEN[$i]=$this->param");
       }

    //auslesen der globalen Variable $DATEN
       function daten_Auslesen($a_index) {
          if(getenv("DATEN")) return getenv("DATEN[$a_index]");
       }
    }

    Instanziierung:

    $d = new Daten($variable);
    $d->daten_Setzen();
    $d->daten_Setzen();
    $d->daten_Setzen();
    //den 1. Index auslesen
    echo $d->daten_Auslesen(0);
    echo $d->daten_Auslesen(1);
    echo $d->daten_Auslesen(2);

    Also bin ich auf 2 Probleme gestoßen:

    1. in der Methode daten_Setzen() will ich die Anzahl der Elememnte im Array auslesen, falls das erste Element bereits gesetzt wurde - also es sollte dann bei 1 beginnen. Leider ist die Sache mit count() nicht erledigt - es wird immmer 1 zurückgegeben. Wie kann ich die Anzahl der Elemente in einem Array (==Umgebungsvariable) auslesen ?
    1. wieso verschwindet die Umgebungsvariable nach dem neuen Laden der Seite ? _COOKIE ist ja immer vorhanden - auch die anderen "Superglobals". Hängt es mit der .ini Konfigurationsdatei zusammen ?

    Falls ihr wisst, was ich da tun soll, bitte schreiben :-)

    danke im voraus
    cu kati

    1. hi jones

      bin auch schon draufgekommen. Danke trotzdem

      cu kati

      Hi,
      hmmm... gute Frage. Meines Wissens nach verfallen die Umgebungsvariablen nach
      einem erneuten Seitenaufruf (irren ist menschlich???)!

      warum versuchst du es nicht mit session variablen, die bleiben immer erhalten
      solange bis sie verfallen oder gelöscht werden...

      session_register() usw....

      Jones


      Hallo zammen,

      ich möchte eine Umgebungsvariable setzen, da ich für bestimmte Daten einen globalen Zugriff haben möchte und über getenv sie abfragen kann. Ich habe folgende Klasse geschrieben:

      class Daten {
         var $param;

      function Daten($a_param) {
            $this->param = $a_param;
         }

      //setzen der globalen Variable $DATEN
         function daten_Setzen() {
            $i = 0;
            if(getenv("DATEN[0]")) $i = count(getenv("DATEN"));
            putenv("DATEN[$i]=$this->param");
         }

      //auslesen der globalen Variable $DATEN
         function daten_Auslesen($a_index) {
            if(getenv("DATEN")) return getenv("DATEN[$a_index]");
         }
      }

      Instanziierung:

      $d = new Daten($variable);
      $d->daten_Setzen();
      $d->daten_Setzen();
      $d->daten_Setzen();
      //den 1. Index auslesen
      echo $d->daten_Auslesen(0);
      echo $d->daten_Auslesen(1);
      echo $d->daten_Auslesen(2);

      Also bin ich auf 2 Probleme gestoßen:

      1. in der Methode daten_Setzen() will ich die Anzahl der Elememnte im Array auslesen, falls das erste Element bereits gesetzt wurde - also es sollte dann bei 1 beginnen. Leider ist die Sache mit count() nicht erledigt - es wird immmer 1 zurückgegeben. Wie kann ich die Anzahl der Elemente in einem Array (==Umgebungsvariable) auslesen ?
      1. wieso verschwindet die Umgebungsvariable nach dem neuen Laden der Seite ? _COOKIE ist ja immer vorhanden - auch die anderen "Superglobals". Hängt es mit der .ini Konfigurationsdatei zusammen ?

      Falls ihr wisst, was ich da tun soll, bitte schreiben :-)

      danke im voraus
      cu kati

  2. Hi kati,

    1. wieso verschwindet die Umgebungsvariable nach dem
      neuen Laden der Seite ? _COOKIE ist ja immer vorhanden

    für's Archiv:

    Alle Environment-Variablen "leben" nur innerhalb des
    Prozesses, der diesen Programmaufruf realisiert.
    Danach sind sie weg.

    Der Cookie ist beim "nächsten" Aufruf nicht _noch_,
    sondern _wieder_ da - weil der Browser ihn bei _jedem_
    HTTP-Request an dieses Ziel immer wieder mitsendet.
    Mit den credentials der HTTP-Authentication ist das
    genauso.

    Viele Grüße
          Michael

    1. hallo !

      ja, ist schon klar.. war ne dumme Frage von mir. :-)

      cu kati

      Hi kati,

      1. wieso verschwindet die Umgebungsvariable nach dem
        neuen Laden der Seite ? _COOKIE ist ja immer vorhanden

      für's Archiv:

      Alle Environment-Variablen "leben" nur innerhalb des
      Prozesses, der diesen Programmaufruf realisiert.
      Danach sind sie weg.

      Der Cookie ist beim "nächsten" Aufruf nicht _noch_,
      sondern _wieder_ da - weil der Browser ihn bei _jedem_
      HTTP-Request an dieses Ziel immer wieder mitsendet.
      Mit den credentials der HTTP-Authentication ist das
      genauso.

      Viele Grüße
            Michael

      1. Hi kati,

        ja, ist schon klar.. war ne dumme Frage von mir. :-)

        finde ich gar nicht.

        Am Verständnisproblem des zustandslosen HTTP scheitern viele Leute im
        ersten Versuch.

        Viele Grüße
              Michael