Session Variablen weitergeben
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
aufruf
auslese
bau
code
datei
dynamisch erzeugte links bekommen
ersten verwendung
file
gebiet
header
probier
riesige felder
session
start
stehen
string
test
url
versuch
-
Hallo,
ich sags gleich, ich bin absoluter Anfänger auf dem Gebiet Sessions. Ich habs grade mal hingegriegt, dass ich die Variable $_SESSION['user'] setze und auslese. Aber klicke ich auf nen Link ist die Variable irgendwie weg... Mach ich was falsch oder passt das so? Und wie gebe ich jetzt die Variable weiter ohne gleich in der Andresszeile ?user=name&sessid=932dksjf3j4k usw oder riesige <input type="hidden">-Felder zu machen?
MfG -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
In jeder Datei, in der die Session verfügbar sein soll, muss vor der ersten Außgabe und vor der ersten Verwendung einer Session-Variable die Funktion
ausgeführt werden. Dann sind alle Session-Variablen im Session-Array $_SESSION verfügbar.session_start();
-
limabone schrieb:
Schau mal auf die ersten 3 Wörter in meinem Beitrag: "In jeder Datei"
Ich hab bei Jeder Seite session_start() stehen, nur bei den funktionsseiten halt nicht. Muss ich session_start() auch dort einfügen? -
Du must session_start() machen bevor der header gesendet wurden.
Heißt:Mache einfach in jeden deiner scripte:
<?php session_start(); ?>
nach ganz oben
mfg matthimeo -
Voll Komisch.
Meine Seite besteht so ca aus 1 File welches 10 andere includet...
Jedenfalls schreib ich auf dem einen (dem Hauptfile) den string session_start();
und auf den anderen zb menubar.php will ich überprüfen ob $_SESSION['user'] leer ist. Und in diesem File ist es auch leer. Aber beim Hauptfile hab ich echo $_SESSION['user'] gemacht und da klappts...
Verstanden oder hab ich zu kompliziert formuliert?
MfG Limabone -
limabone schrieb: Voll Komisch.
Meine Seite besteht so ca aus 1 File welches 10 andere includet...
Jedenfalls schreib ich auf dem einen (dem Hauptfile) den string session_start();
und auf den anderen zb menubar.php will ich überprüfen ob $_SESSION['user'] leer ist. Und in diesem File ist es auch leer. Aber beim Hauptfile hab ich echo $_SESSION['user'] gemacht und da klappts...
Verstanden oder hab ich zu kompliziert formuliert?
MfG Limabone
??? ne ich habe es nicht wirklich verstanden.
Mach aber einfach in deiner Hauptscript bevor du irgendwas includest session_start() rein.
Wenns dann nicht klappt dann bau das in allen deinen scripten an.
Weil dann aber der header modyfied wurde musste dann überall @session_start() schreiben,
aber ahctung dann werden keine Fehler mehr ausgegeben.
mfg matthimeo -
das ganze klingt echt strange... aber mann muss nicht in jeder datei den session start aufruf drin haben.... sondern nur in der die auch aufgerufen wird...
klienes bsp:
index.php: <?php session_start(); include 'a_file.php'; ?>
a_file.php: <?php var_dump($_SESSION); ?>
probier auf jedenfall mal folgendens und sag mal was dabei rauskommt:
var_dump($_SESSION);
mfg andre -
ich hab den Versuch mit
Dabei ist array(1) { ["user"]=> string(4) "test" } rausgekommen, bei<?php session_start(); $_SESSION['user'] = 'test'; include('a_file.php'); ?> und bei a_file.php <?php var_dump($_SESSION['user'] ?>
ist array(0) { } rausgekommen...]<?php session_start(); include('a_file.php'); und <?php var_dump($_SESSION) ?>
Ich schätze mal das heißt, dass es funktioniert...
-
limabone schrieb: ich hab den Versuch mit
Dabei ist array(1) { ["user"]=> string(4) "test" } rausgekommen, bei<?php session_start(); $_SESSION['user'] = 'test'; include('a_file.php'); ?> und bei a_file.php <?php var_dump($_SESSION['user'] ?>
so sollte es sein
limabone schrieb: ich hab den Versuch mit
ist array(0) { } rausgekommen...[code]<?php session_start(); include('a_file.php'); und <?php var_dump($_SESSION) ?>
Ich schätze mal das heißt, dass es funktioniert...
da kann nix im array sein deswegen kommt auch array(0) { } dh. keine session, und auch so sollte es sein
==> dh. es funktioniert
mfg andre -
Benutzt du als Session Cookie oder über URL???
Dynamisch erzeugte links bekommen die Session nicht übergeben.
bei session_start() darf keine Ausgabe davor stehen und Achte bei $_SESSION['blabla'] auf GROß- und klein - Schreibung und die Anführungszeichen -
Dazu hab ich auch mal eine Frage. Bei mir sieht es so aus:
<div id="intro" class="<?php session_start(); if ($_SESSION['visited']) { echo 'hide'; } else { echo 'intro'; } $_SESSION['visited'] = TRUE; ?>">
bla bla
</div>
hide = versteckt
intro = nicht versteckt
Beim ersten Seitenaufruf wird also das DIV angezeigt, bei jedem weiteren Aufruf nicht, da die Sessio ja gestartet wurde. Das klappt wunderbar, allerdings nicht wenn jemand Cookies deaktiviert hat. Warum wird da ein Cookie angelegt? Dachte Sessions kommt ohne Cookies klar? Gibts da ne Möglichkeit ohne Cookies? -
melonenfans schrieb:
<div id="intro" class="<?php session_start(); if ($_SESSION['visited']) { echo 'hide'; } else { echo 'intro'; } $_SESSION['visited'] = TRUE; ?>"> bla bla </div>
wegen der cookies kann ich dir nciht helfen, aber session start muss als erstes komen sovil dazu...
<?php session_start(); ?> <div id="intro" class="<?phpif ($_SESSION['visited']) { echo 'hide'; } else { echo 'intro'; } $_SESSION['visited'] = TRUE; ?>"> bla bla </div>
mfg andre -
Das ist eigentlich egal, so wie ichs geschrieben habe funktioniert es ja wie gesagt.
Das Problem scheint mir diese Servereinstellung zu sein die ich via phpinfo() rausgefunden habe?
session.use_cookies = on
Scheint also nicht möglich zu sein, da bei normalen Sessions immer ein Cookie angelegt wird oder? -
probier mal
<?php ini_set('session.use_cookies',false); session_start(); //code ?>
aber eigentlich musst du mal nach session.use_only_cookies gucken.. und ggf ändern
mgf andre -
Ich glaube kaum das Lima-City Änderungen über Scripte oder .htaccess zulässt oder?
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage