Archiv verlassen und diese Seite im Standarddesign anzeigen : $_SESSION --> Array geht verloren
tripophon 05-10-2004, 14:37 Folgendes:
Ich speichere einige Logindatren in dem Array $_SESSION. Versuche ich das Array auf folgeseiten wieder aufzurufen, sind alle Daten im Array weg. Auf meinen lokalen Systemen funktioniert alles tadelos, nur auf dem System nicht, wo die Anwendung laufen soll.
Lokal (PowerMac G5/OS X 10.3.5 || Php 4.3.4 (Register Globals = Off) ), [Win XP Prof. PHP 5.0.0 Register Globals Off]
Internetserver (irgendein Linux mit PHP 5.0.0 Register Globals = OFF)
// script1.php
session_start();
$_POST['sessLogin'] = TRUE;
$_SESSION['sessUserID'] = $_POST['sessUserID'];
$_SESSION['sessLogin'] = $_POST['sessLogin'];
$_SESSION['sessUserName'] = $_POST['sessUserName'];
$_SESSION['sessLastLogin'] = $_POST['LastLogin'];
$_SESSION['sessLoginTotal'] = $_POST['LoginTotal'];
$_SESSION['sessLevel'] = $_POST['sessLevel'];
print_r ($_SESSION);
// hier werden mir alle Daten korrekt angezeigt.
header("Location: ../start.php");
// hier habe ich auch schon versucht die SID anzuhängen, aber ohne Erfolg :(
session_start();
print_r ($_SESSION);
// In der Ausgabe sollten nun eigentlich alle Daten $_SESSION ausgegeben werden... aber es steht nur Array() da.
Ich verstehe das nicht, und ich könnte an dieser Stelle Hilfe gebrauchen.
Hier noch die Session_Sektion vom Server phpinfo(); :
Session Support enabled
Registered save handlers files user sqlite
Registered serializer handlers php php_binary
Directive Local Value Master Value
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name SID SID
session.referer_check no value no value
session.save_handler files files
session.save_path /var/sessions /var/sessions
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
Vielleicht kann mir ja jemand helfen.
php-anfaenger 05-10-2004, 14:42 was ist wenn du es so machst ?
session_register('login');
$_SESSION['sessUserID'] = $_POST['sessUserID'];
$_SESSION['sessLogin'] = $_POST['sessLogin'];
$_SESSION['sessUserName'] = $_POST['sessUserName'];
$_SESSION['sessLastLogin'] = $_POST['LastLogin'];
$_SESSION['sessLoginTotal'] = $_POST['LoginTotal'];
$_SESSION['sessLevel'] = $_POST['sessLevel'];
print_r ($_SESSION);
was kommt dann mit print_r ?
auf der nächsten seite ?
tripophon 05-10-2004, 14:50 Danke anfaenger
Ich habe mal deinen Kode-Schnipsel implementiert. Das hat aber nicht gebracht ..
Auf Seite 2, also da wo die Session wieder aufgerufen werden sollte, ist das Array leer.
Es ist sowas von verflixt. :(
--> print_r auf Seite 1
(Alle Variablen vorhanden)
--> print_r auf Seite2
Array()
php-anfaenger 05-10-2004, 14:52 Ich musste es so machen damit es auf dem Server den ich da stehen habe funktionierte:
session_register('uname');
$_SESSION['uname'] = $_POST['uname'];
session_register('passwd');
$_SESSION['passwd'] = $_POST['passwd'];
session_register('name');
$_SESSION['ai_name'] = $aktion['AI_NAME'];
und dann ab der nächsten Seite...
session_start();
Dann lief es...
Nach langem hin und her... ;)
php-anfaenger 05-10-2004, 14:56 meine settings...
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn On On
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 100 100
session.gc_maxlifetime 1440 1440
session.gc_probability 1 1
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path .;E:\WEB\apachefriends\xampp\tmp .;E:\WEB\apachefriends\xampp\tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid Off Off
Ist das nen normaler Webspace oder nen Server den du dort Administrierst ?
Zum einen sollten Header-Angaben absolut gemacht werden ... (das nur am Rande) ...
Die Frage ist, wie die Session-ID übermittelt wird ... gib' mal das Array $_COOKIE aus ... und schau' nach ob 'ne entsprechende ID vorhanden ist ... bei deinen Einstellungen sollte das der Fall sein ...
... und ... hör' auf diesen session_register()-Quatsch nicht ... das ist seit Jahren ... und bei Deinen PHP-Versionen auf jeden Fall obsolet ... !
php-anfaenger 05-10-2004, 15:10 Das hatte ich auch mal gedacht goth...
Aber naja ich könnte Dir nen Thread von mir zeigen der mehr als 50 followups hat und man nicht weitergekommen ist... ;)
Aber hör auf den Goth :p
Original geschrieben von php-anfaenger
session_register('uname');
$_SESSION['uname'] = $_POST['uname'];
session_register('passwd');
$_SESSION['passwd'] = $_POST['passwd'];
session_register('name');
$_SESSION['ai_name'] = $aktion['AI_NAME'];
da ist mein alter Spruch wieder fällig:
Fleiß + Unwissenheit = Chaos
http://www.php.net/manual/en/function.session-register.php
ich könnte Dir nen Thread von mir zeigen der mehr als 50 followups hat und man nicht weitergekommen ist... ;)
ja, das liegt sicher an deiner genialität und an unserer unfähigkeit. weißt du, was mich an dir am meistens nervt? daß in jedem deiner beiträge der selbe mist steht ... zitat: Dieser Benutzer ist auf Deiner Ignorier-Liste.
php-anfaenger 05-10-2004, 15:20 Wenn du das so meinst ? Ich habs nie behauptet, aber Wayne... btw: was hat dies mit seinem Problem zu tun ?
tripophon 05-10-2004, 15:23 Also
im Script1 wird bei
print_r($_SESSION);
echo '<br>';
print_r($_COOKIE);
folgendes ausgegeben:
Array ( [login] => [sessUserID] => 2 [sessLogin] => 1 [sessUserName] => Admin [sessLastLogin] => 20041005131614 [sessLoginTotal] => 15 [sessLevel] => 0 )
Array ( [SID] => 1d6htoqu93di2i6uee64gmms93 )
Und im Script2 leider nur:
Array ( )
Array ( [SID] => 1d6htoqu93di2i6uee64gmms93 )
Die SessionID wird somit wohl gespeichert, oder?
Session_Register habe ich eigentlich nicht verwendet, da man es ab php4 über das assz. Array machen soll.
Original geschrieben von php-anfaenger
... was hat dies mit seinem Problem zu tun ?
Der Sinn eines OffTopic ist Dir wohl auch nicht ganz klar ... oder?
php-anfaenger 05-10-2004, 15:25 Original geschrieben von goth
Der Sinn eines OffTopic ist Dir wohl auch nicht ganz klar ... oder?
Aehm "offtopic" sind Dinge am Rande eines Themas die mit dem eigentlichen Problem nix zu tun haben...
Oder soll ich "goth" dann ne "PM" schicken ?
:rolleyes:
Original geschrieben von tripophon
Also
...
Und im Script2 leider nur:
Array ( )
Array ( [SID] => 1d6htoqu93di2i6uee64gmms93 )
...
Da die SessionID korrekt übermittelt wird, würde ich jetzt zunächst mal auf ein Problem mit den Schreibberechtigungen auf "/var/sessions" tippen ... :dontknow:
mrhappiness 05-10-2004, 15:27 Original geschrieben von php-anfaenger
Aehm "offtopic" sind Dinge am Rande eines Themas die mit dem eigentlichen Problem nix zu tun haben...siehste, jeder kann was :)
Oder soll ich "goth" dann ne "PM" schicken ?
:rolleyes: du kannst es versuchen, aber du solltest dich lieber um deinen code kümmern
php-anfaenger 05-10-2004, 15:29 oki chefe wird gemacht ;)
les mir gerade manual durch evtl. gehts ja anders auch...
Vielleicht sollte er mal einfach seinen Sabbel halten ... Oups ... warum steht denn jetzt in Seinen Postings bei mir genau das Gleiche wie bei "derHund" ... ?!?!
Steht denn in der Session-Datei was drin?
Unter /var/sessions (laut deiner php-info) solltest Du eine Datei mit der SID finden.
Mach die auf, und schau nach, ob da Einträge drin sind.
Nur weil dir das Array $_Session auf der ersten Seite was zurückgibt, bedeutet das nicht, das er das auch in die Session geschrieben hat!
P.S. wenn da nix drin ist stimme ich goth zu: Thema Schreibberechtigung:
Ändern mit chmod 777 /var/sessions,
tripophon 05-10-2004, 15:54 Leider habe ich ja keine Berechtigung auf dem Server in den Verzeichnissen zu schauen. Ich habe den Administrator aber soeben darum gebeten die Rechte zu setzen, falls sie nicht richtig gesetzt sind.
Ich habe hier einen Beitrag gefunden, der in etwa auf mein Problem passt:
gadgetguy03 at lycos dot com
21-Jun-2003 04:18
SESSION LOST ON HEADER REDIRECT (CGI on IIS 5.0)
I realize there are numerous scattered posts on this issue, but I would like to add my 2¢ since it took me a whole day and a download of the LiveHTTPHeaders Mozilla plugin to figure it out.
On the **CGI** version of PHP on IIS 5.0/Windows 2000, the following code will not work as expected:
/***** sess1.php *****/
session_start();
$_SESSION["key1"] = "testvalue";
header("Location: sess2.php");
/***** sess2.php *****/
session_start();
echo "key1 = '".$_SESSION["key1"]."'";
PROBLEM:
All session data is lost after a header redirect from the first page on which the session is initialized. The problem is, the PHPSESSID cookie is not being sent to the browser (ANY browser, IE or Mozilla) on the initial session page with the header("Location: ...") redirect. This is unrelated to client cookie settings - the set-cookie: header just isn't sent.
SOLUTION:
I was able to remedy the problem by switching to the ISAPI DLL version. This seems to be an MS/IIS bug, NOT a PHP bug - go figure. I hope this saves you some headaches especially with your user authentication scripts!!
The closest matching "bug" report I found:
http://bugs.php.net/bug.php?id=14636
Quelle: http://de.php.net/manual/en/function.session-start.php
Aber auf dem Sever läuft laut phpinfo(); ein Linux und nicht der ISS :dontknow:
(Linux fire 2.6.5-7.95-smp #1 SMP Thu Jul 1 15:23:45 UTC 2004 i686)
tripophon 05-10-2004, 16:01 :huep:
Ich habe mit dem Admin telefoniert, und es lag tatsächlich an den Rechten.
Ich bedanke mich hiermit bei euch allen :)
SUPER SUPER SUPER
|