dimde: Session

Beitrag lesen

Hallo Tobias,

main.php:
<?php
$HTTP_SESSION_VARS[session_cache_limiter('public')];
$HTTP_SESSION_VARS[session_start];
$HTTP_SESSION_VARS[session_register('name')];

$HTTP_SESSION_VARS ist lediglich ein array mit den Session Variablen. Dein code ist also (leider) etwas falsch :)

Als erstes solltest Du die session starten, indem Du

session_cache_limiter('public');
session_start();

aufrufst.

Dannach kannst Du die Variable "name" einfach zu den $HTTP_SESSION_VARS (bzw. $_SESSION) hinzufügen:
(Im PHP-Manual steht explizit, dass man bei Verwendung von $HTTP_SESSION_VARS bzw. $_SESSION die Funktionen session_register(),  session_is_registered() und session_unregister() *nicht* verwenden soll. Siehe: http://www.php.net/manual/en/function.session-register.php)

$_SESSION["name"] = $_GET["name"];

Vielleicht könntest/solltest Du vorher noch prüfen, ob $_GET["name"] überhaupt einen gültigen Namen enthält und evtl. irgendwelche Sonderzeichen, etc... rausfiltern.

Somit hast Du jetzt die Variable $name in den Session Variablen stehen. Jetzt weiter zu main2.php...

main2.php:
<?php
$HTTP_SESSION_VARS[session_cache_limiter('public')];
$HTTP_SESSION_VARS[session_start];
?>

Das hier ist - wie oben schon gesagt - falsch und müsste so heissen:

<?php

session_cache_limiter('public');
session_start();

?>

<p>PAGE2:------>Im Formular wurde <b><?php echo $HTTP_SESSION_VARS["name"] ?></b> eingegeben!!</p>
<p><a href="main3.php">Logout</a></p>

Das passt soweit und der Name sollte auch angezeigt werden.

In main3 (logout) musst Du dann noch die vorhandenen Session Variablen löschen und die Session beenden:

<?php

$_SESSION = array();
session_destroy();

?>

siehe auch:
http://www.php.net/manual/en/ref.session.php
http://www.php.net/manual/en/function.session-start.php
http://www.php.net/manual/en/function.session-destroy.php

Ich hoffe, ich konnte Dir ein bischen weiterhelfen :)

Gruß,
dimde