Array in $_SESSION speichern
maico
- php
Hallo ich habe folgendes Problem:
ich möchte einen Array in einer Session speichern. Damit ich den auf einer anderen Seite verwenden kann.
SEITE 1:
if(isset($_GET['add']) && $_GET['add'] != "") {
$a_testArray[] = $_GET['add'];
}
$_SESSION['array'] = $a_testArray;
SEITE 2:
$a_testArray = array();
if (isset($_SESSION['array'])) {
$a_testArray = $_SESSION['array'];
}
In der Variable $_SESSION['array'] ist aber nur ein Integer mit dem ersten Wert von $a_testArray und nicht den ganzen Array.
Auf meinem Testsystem Zuhause funktioniertes und auf dem Webspace nicht (beides mal PHP 5).
Kann es am Safe-Mode liegen?
Oder hat Jemand eine andere Idee??
ich möchte einen Array in einer Session speichern. Damit ich den auf einer anderen Seite verwenden kann.
Sollte problemlos gehen.
SEITE 1:
if(isset($_GET['add']) && $_GET['add'] != "") {
$a_testArray[] = $_GET['add'];
}$_SESSION['array'] = $a_testArray;
var_dump($_SESSION['array'];
SEITE 2:
var_dump($_SESSION['array'];
$a_testArray = array();
if (isset($_SESSION['array'])) {
$a_testArray = $_SESSION['array'];
}
Außerdem brauchst du deine Variablen nicht hin- und herzukopieren, das braucht nur überflüssig Speicher. Nutze direkt $_SESSION, $_GET, $_POST etc.
In der Variable $_SESSION['array'] ist aber nur ein Integer mit dem ersten Wert von $a_testArray und nicht den ganzen Array.
Dann ist der Integer schon in $_GET falsch drin, würde ich meinen. Du prüfst ja nirgends, ob $_GET['add'] ein Array ist.
Deshalb mal die Testausgabe mit var_dump einfügen und selbst gucken, was in der Variablen drin steht.
Außerdem brauchst du deine Variablen nicht hin- und herzukopieren, das braucht nur überflüssig Speicher. Nutze direkt $_SESSION, $_GET, $_POST etc.
»»
Habe ich umprogrammiert aber das problem besteht immer noch.
Dann ist der Integer schon in $_GET falsch drin, würde ich meinen. Du prüfst ja nirgends, ob $_GET['add'] ein Array ist.
Da habe ich dich nicht ganz verstanden, aber $_GET['add'] ist kein Array sondern ein Integer.
MIt $a_testArray[] = $_GET['add']; füge ich den Integer zum Array hinzu.
Außerdem brauchst du deine Variablen nicht hin- und herzukopieren, das braucht nur überflüssig Speicher. Nutze direkt $_SESSION, $_GET, $_POST etc.
»»
Habe ich umprogrammiert aber das problem besteht immer noch.
Und das var_dump?
Hallo,
MIt $a_testArray[] = $_GET['add']; füge ich den Integer zum Array hinzu.
sollte das nicht entweder mit $a_testArray[index]=inhalt oder array_push() geschehen?
Grüße Sebastian
echo $begrüßung;
MIt $a_testArray[] = $_GET['add']; füge ich den Integer zum Array hinzu.
sollte das nicht entweder mit $a_testArray[index]=inhalt oder array_push() geschehen?
$array[] = ... legt ein neues Element im Array an. Mit array_push($array, ...) geht das auch, aber man hat damit noch den Overhead eines Funktionsaufrufs. Für ein einzelnes hinzuzufügendes Element ist die erste Methode geringfügig vorteilhafter.
echo "$verabschiedung $name";
hi,
if(isset($_GET['add']) && $_GET['add'] != "") {
$a_testArray[] = $_GET['add'];
Mache bitte _vor_ diesen Anweisungen ein var_dump($a_testArray).
Dann können wir erkennen, ob $a_testArray zu diesem Zeitpunkt bereits ein Array _ist_ - entweder bereits mit einigen Elementen, oder als solches initialisiert.
gruß,
wahsaga