2016-05-23 22 views
0

Ich drucke Sitzung mit print_r ($ _ SESSION) in der Indexseite zeigt es folgenden Array.Sitzungsvariable ist nicht verfügbar

Array 
(
    [name] => hhh 
) 

index.php 

    <?php 
    session_start(); 
    $_SESSION['name']='hhh'; 

Ich wollte diese Variable aufheben, wann immer ich will. Also habe ich eine neue PHP-Datei im selben Verzeichnis mit folgendem Inhalt

<?php 

    session_start(); 
    echo "before destroying the session"; 
    print_r($_SESSION); 
    unset($_SESSION['name']);//remove the name session variable which is available in my index page. 
    session_destroy(); //destroy the session 
    echo "after destroying the session"; 
    print_r($_SESSION); 

Aber immer, wenn ich den obigen Code ausführen druckt er folgendes:

before destroying the sessionArray () after destroying the sessionArray () 

Warum meine Session, die im Index vorhanden ist Die Seite ist in der obigen Skriptseite nicht zugänglich.

Vielen Dank im Voraus

+0

werden Sie es in session_start Schreiben(). Es funktioniert gut für mich. – RJParikh

+0

Ja, es ist in der ersten Zeile. – scriptkiddie

+0

müssen Sie session_start() nicht erneut eingeben, wenn Sie die Indexseite in eine andere Seite einschließen und Ihre Indexseite den Sitzungsstart enthält. – RJParikh

Antwort

0

Ich bin nicht sicher, was Ihr Ziel ist, das ist, was Ihr Code tut:

# You start your session 
session_start(); 

# Echo a string 
echo "before destroying the session"; 

# Print the $_SESSION array, comes out empty because you havn't put anything in the session 
print_r($_SESSION); 

# You unset the 'name' key in the $_SESSION array, which wasn't even there in the first place 
unset($_SESSION['name']); 

# You get rid of the session 
session_destroy(); 

# Echo a string 
echo "after destroying the session"; 

# You print $_SESSION variable again, which is going to be empty, because you just destroyed the session. 
print_r($_SESSION); 

Mein Punkt erklärt Code ist, was Sie eigentlich tun wollen?

Wenn Sie ein $ _SESSION über mehrere Seiten hinweg verwenden möchten, verwenden Sie einfach nicht session_destroy() zwischen den Seiten, sondern zerstören Sie es nur, wenn sich Ihr Benutzer sozusagen abmeldet und session_start() auf all Ihren Seiten.

0

Sie müssen die Sitzung session_start() in Ihrer Indexdatei starten.

index.php

session_start(); 
$_SESSION['name'] = "test"; 

test.php

include 'index.php'; 

    echo "before destroying the session"; 
    print_r($_SESSION); 
    unset($_SESSION['name']);//remove the name session variable which is available in my index page. 
    session_destroy(); //destroy the session 
    echo "after destroying the session"; 
    print_r($_SESSION); 

Ausgabe

before destroying the sessionArray ([name] => test) after destroying the sessionArray () 
+0

versuchen Sie oben Code, um Ihre Wunschausgabe zu erreichen. @skriptkiddie – RJParikh

Verwandte Themen