Array in Session an Seite übergeben
IceRage
- php
0 Sven Rautenberg0 Tom0 Sven Rautenberg0 Tom
Hallo allerseits,
diese Sache mit session_start() und session_register() ist ja wohl nicht mehr nötig wie ich gelesen habe. Habe ich bisher aber so weit ich mich erinnern kann, aber auch nur mit normalen Variablen gemacht, also mit Skalaren.
Ich Suche nun eine Möglichkeit ein eindimensionales Array, per $_SESSION[] an die aufrufende Seite zu übergeben - also nach absenden eines Forms mit <?PHP echo $_SERVER['PHP_SELF']; ?>
In dem Form sind Textfelder enthalten, die ihrer Seits auch schon in einem Array gespeichert sind: <input type="text" name="boxes[]"></input> . Auf boxes[] kann ich auch problemlos zugreifen und es durchlaufen.
Außerdem möchte ich aber, wie gesagt, ein zusätzliches Array übergeben. Ich habe das wie folgt versucht:
$_SESSION['ar_picurl'] = array();
$_SESSION['ar_picurl'][$i] = "wert";
und dann nach dem Abschicken habe ich versucht mit:
$wertnachaufrufen = $_SESSION['ar_picurl'][$i];
wieder auszulesen. Dort bekomme ich allerdings immer die Meldung, dass die Variable nicht definiert ist.
Wäre da bitte jemand so nett, und würde mir sagen wie das geht?
Gruß, IceRage
Moin!
diese Sache mit session_start() und session_register() ist ja wohl nicht mehr nötig wie ich gelesen habe.
Du hast falsch gelesen.
session_start() ist immer noch zwingend notwendig.
Ich Suche nun eine Möglichkeit ein eindimensionales Array, per $_SESSION[]
$_SESSION['ein_name'] = array(bla, bla, bla);
echo $_SESSION['ein_name][0];
Noch Fragen?
In dem Form sind Textfelder enthalten, die ihrer Seits auch schon in einem Array gespeichert sind: <input type="text" name="boxes[]"></input> . Auf boxes[] kann ich auch problemlos zugreifen und es durchlaufen.
Du meinst $_GET['boxes'] bzw. $_POST['boxes']. ?!?
- Sven Rautenberg
Moin!
diese Sache mit session_start() und session_register() ist ja wohl nicht mehr nötig wie ich gelesen habe.
Du hast falsch gelesen.
Also ob ich nun falsch gelesen habe, oder ob es in der Quelle vielleicht einfach falsch angegeben war, kannst du glaub ich nicht beurteilen, da du die Quelle nicht kennst. Aber vielen Dank erstmal für die Rückmeldung, ich werd das mal ausprobieren.
Gruß, IceRage
Jo das hat jetzt so funktioniert mit session_start(), aber erst nach 2 maligem Aufruf, hatte ich vorher auch schon mal ausprobiert, und wohl irgendwie nur 1 Mal aufgerufen.
Aber finde ich schon komisch, dass es zuvor mit allen "einfachen" Variablen ohne session_start() geklappt hat, und, wenn ich ich Arrays benutzen will, ich erst eine Session starten muss.
Gruß, IceRage
Moin!
Jo das hat jetzt so funktioniert mit session_start(), aber erst nach 2 maligem Aufruf, hatte ich vorher auch schon mal ausprobiert, und wohl irgendwie nur 1 Mal aufgerufen.
Aber finde ich schon komisch, dass es zuvor mit allen "einfachen" Variablen ohne session_start() geklappt hat, und, wenn ich ich Arrays benutzen will, ich erst eine Session starten muss.
Nein, du mußt immer session_start() benutzen.
Aber die veralteten session_*-Funktionen rufen session_start() implizit mit auf, wenn das noch nicht geschehen ist.
Da aber der gesamte Datenzugriff über $_SESSION geschehen soll, passiert das implizite Aufrufen nicht mehr.
- Sven Rautenberg
Hello,
Du benötigst noch
session_start();
bei jedem betroffenen Request, um den Sessionmechanismus in Betrieb zu setzen.
PHP schaut dann, ob ein Zertifikat für eine vorhandene Session mitgesanandt wurde und legt, wenn dies nicht der fall war, eine neue (leere) Sessiondatei an und vergibt ein neues Zertifikat, dass dann dem Client mit der Antwort mitgesandt wird.
Beim nächsten Request sollte der Client dieses Zertifikat mit zurücksenden. Tut er dan nicht, vergibt PHP erneut ein Zertifikat und legt wieder eine leere neue Sessiondatei an.
PHP kann ohne weitere Maßnahmen NICHT erkennen, wenn ein Client keinerlei Zertifikate zurücksendet mit dem nächstgen Request.
Ein harzliches Glückauf
Tom vom Berg
Moin!
PHP schaut dann, ob ein Zertifikat für eine vorhandene Session mitgesanandt wurde
Bitte verwende im Zusammenhang mit PHP-Sessions nie wieder den Begriff "Zertifikat". Der ist im Online-Computerzusammenhang reserviert für kryptografische Dinge, und sowas passiert bei Sessions absolut nicht.
"Session-ID" wäre angemessen.
- Sven Rautenberg
Hello,
Bitte verwende im Zusammenhang mit PHP-Sessions nie wieder den Begriff "Zertifikat". Der ist im Online-Computerzusammenhang reserviert für kryptografische Dinge, und sowas passiert bei Sessions absolut nicht.
*ups*. Aber bitte nicht hauen ;-)
Ein harzliches Glückauf
Tom vom Berg