- Ad -
IMPRESSUM dotted_line KONTAKT dotted_line search dotted_line Contact dotted_line sitemap
265 PHP-Resource Mitglieder online
php-resource



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 ?

 
goth
05-10-2004, 15:05 
 
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

 
asp2php
05-10-2004, 15:15 
 
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

 
goth
05-10-2004, 15:16 
 
http://www.php.net/manual/en/function.session-register.php

 
derHund
05-10-2004, 15:16 
 
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.

 
goth
05-10-2004, 15:23 
 
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:

 
goth
05-10-2004, 15:26 
 
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...

 
goth
05-10-2004, 15:30 
 
Vielleicht sollte er mal einfach seinen Sabbel halten ... Oups ... warum steht denn jetzt in Seinen Postings bei mir genau das Gleiche wie bei "derHund" ... ?!?!

 
Wendel
05-10-2004, 15:33 
 
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

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 13:53 Uhr.