Erzeugen und Setzen einer Umgebungsvariable
kati
- php
0 Jones0 kati
0 Michael Schröpl0 kati
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:
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 ?
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
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:
- 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 ?
- 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
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:
- 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 ?
- 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
Hi kati,
- 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
hallo !
ja, ist schon klar.. war ne dumme Frage von mir. :-)
cu kati
Hi kati,
- 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
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