session-variable

kesnw

Erfahrenes Mitglied
Warum wird der username in loged_in.php3 nicht ausgegeben?

(Auszüge aus den Skripten: )

login.php3

Code:
// authenticate using form variables
$username = $_POST['f_user'];
$password = $_POST['f_pass'];
$status = authenticate($username, $password);

// if  user/pass combination is correct
if ($status == 1)
{
	// initiate a session
	session_start();
	
	// register some session variables
	session_register('SESSION');

	// including the username
	session_register('username');
			
	// redirect to protected page
	header("Location: loged_in.php3");
	exit();
}


loged_in.php3

Code:
<?
// loged_in.php3 - secure page

// session check
session_start();
if (!session_is_registered('SESSION'))
{
	// if session check fails, invoke error handler
	header("Location: error.php3?e=failed");
	exit();
}
if (!session_is_registered('username'))
{
	header("Location: error.php3?e=failed");
	exit();
}
?>
<HTML>
<?
                    echo "USER: ";
                    echo "$username";
?>
</HTML>
 
Wenn ich mit $_SESSION auf die variablen zugreife funktioniert es, mit der Varablenangabe direkt ($var) geht es nicht.

ABER

Habe folgendes gelesen:

Achtung:
Wenn Sie $_SESSION (oder $HTTP_SESSION_VARS) verwenden, sollten Sie nicht session_register(), session_is_registered() und session_unregister() verwenden.

Warum? Ich kann leider nur mit $_SESSION['var'] auf die Variablen zugreifen. Weshalb?
 
Siehe dein Session-Thread den ich grade geclosed habe. Bitte in Zukunft erstmal die gängigen Quellen (php.net,usw.) abgrasen. Danke

PS: Die angegebenen Funktionen sollst du nicht benutzen wenn du mit $_SESSION arbeitest, da du dann sämtliche der Aufgaben, die die Funktionen erfüllen (erfüllt haben) normal lösen kannst über isset(), unset() und $_SESSION['foo'] == "bar".
 
Zuletzt bearbeitet:
Zurück