PHP und Session-Handling

  • #1
M

Michael_B

Bekanntes Mitglied
Themenersteller
Dabei seit
21.09.2002
Beiträge
860
Reaktionspunkte
0
Ort
Köln
Hallöchen mal wieder,

folgendes Problem: Ich starte in einem PHP-Skript eine Session, registriere danach eine Variable in der Session, weise dieser dann einen Wert zu. Innerhalb dieses Skripts kann ich ohne Probleme wieder auf diese Variable zugreifen. Sobald ich aber auf ein anderes Skript wechsle (die Session bleibt ja bestehen) ist diese Variable nicht mehr zugreifbar.

Code:
<? // Datei: index.php
session_save_path(../../temp);
session_start();
$sid=session_id();
session_register(ant);
$_SESSION[ant]=array();
session_register(count);
$_SESSION[count]=0;

echo \$_SESSION[\count\] = .$_SESSION[count].<br>\$_SESSION[\ant\] = .$_SESSION[ant].<br>\n;
echo <a href=\test.php\>zum Test</a>\n;
?>

Ausgabe von index.php:
$_SESSION[count] = 0
$_SESSION[ant] = Array
zum Test

Funktioniert wunderbar. Klicke ich jedoch nun auf den Link zum Test (Aufruf der test.php) kommt folgende Ausgabe:
$_SESSION[count] =
$_SESSION[ant] =

Hier noch der Code von test.php
Code:
echo \$_SESSION[\count\] = .$_SESSION[count].<br>\$_SESSION[\ant\] = .$_SESSION[ant].<br><br>\n;

Was mach ich hier denn falsch? Warum kann ich in einem anderen Skript die Variablen nicht mehr referenzieren?

Thanks in advance.

Michael
 
  • #2
Hi

Probier es mal so:
Code:
<?php // Datei: index.php
session_save_path(../../temp);
session_start();

$_SESSION[ant]=array();

$_SESSION[count]=0;

echo \$_SESSION[\count\] = .$_SESSION[count].<br>\$_SESSION[\ant\] = .$_SESSION[ant].<br>\n;
echo <a href=\test.php\>zum Test</a>\n;
?>

Gruß, Michael
 
  • #3
Das hat so (also ohne das session_register()) auch nicht funktioniert...

Könnte es vielleicht sein, dass ich in der test.php irgendwas falsch mache/vergessen hab?

THX
Michael
 
  • #4
Ich habs hinbekommen:

eigenartigerweise kann ich zwar in der index.php nach der Registrierung der Variablen per $_SESSION[variable] auf $variable zugreifen, das geht aber nicht mehr in weiteren Skripten... Hier gehts nur mit dem normalen Variablennamen, also mit $variable (und nicht $_SESSIION[...]).

Wichtig ist, dass auch im Folgeskript session_start() ausgeführt wird...

Danke nochmals.

Erledigt

Michael
 
  • #5
Hi

Dann dürfte aber bei dir immernoch etwas falsch konfiguriert sein.
Konfigurier mal den Path zum speichern der Temporären Dateien direkt in der php.ini.
Sonst musst du das bei jeder Datei manuell setzen.

Auch solltest du eine PHP Version >=4.3 haben, die alten machen mit dieser Art etwas in eine Session zu schreiben noch Probleme (glaub 4.1 war das)

Gruß, Michael
 
  • #6
Das mit dem Session_savepath kann ich nicht ändern, da das ein server von unserem intranet ist und der von anderen stellen administriert wird...

jedenfalls läuft da php 4.0 (schon wat älter), aber bisher hat es mit den Sessionvariablen funktioniert...
 
  • #7
Hi

Ja da ist das noch ein Bug.
Dann lieber $var = foo und
session_register(var nehmen.

Gabs da eigentlich schon die Superglobals?

Gruß, Michael
 
  • #8
PCDReitz schrieb:
Gabs da eigentlich schon die Superglobals?

Keine Ahnung... weiss noch nicht mal was Superglobals sind. Kenne nur die normalen globalen... ???
 
  • #9
Hi

$_SESSION ist eine Superglobal :)

Ich glaub die wurden erst mit 4.1 eingeführt.

Gruß, Michael
 
Thema:

PHP und Session-Handling

ANGEBOTE & SPONSOREN

Statistik des Forums

Themen
113.840
Beiträge
707.963
Mitglieder
51.494
Neuestes Mitglied
Flensburg45
Oben