2016-04-12 8 views
0

Wie verwenden $_SESSION[] Array-Elemente zwischen mehreren Seiten derselben Website? Und wann/wie man sie zerstört? Fehler:

Variable undefined..

Wenn Sie einen besseren Vorschlag haben, bitte helfen Sie mir heraus.

-Code für action.php

<?php 
include 'someheader.php'; 
session_start(); 
if(isset($_POST['submit']) 
{ 
    $_SESSION['name']=$_POST['name']; 

    //Some Codes Here 

} 
include 'footer.php'; 
?> 

Andere PHP-Datei in demselben Verzeichnis

<?php 
if(isset($_SESSION['name'])) 
{ 
    echo "Hi $_SESSION['name'].\n"; 
    echo "You have been logged in."; 
} 
?> 
+0

Sie haben einen session_start() vergessen; am Anfang Ihrer zweiten PHP-Datei. – SamyQc

+0

Vielen Dank an alle für die Antwort :) –

Antwort

0

In php, ist es besser, session_start() in der ersten Anweisung Linie der PHP-Seiten zu setzen. Verwenden Sie es einmal pro Seite, ganz oben, bevor Sie irgendwelche $ _SESSION-Variablen verwenden möchten.

<?php 
session_start(); 

Um einen Wert in Sitzung Obtenir:

$username = $_SESSION['username']; 
$password = $_SESSION['password']; 

Um einen Wert in der Sitzung zu löschen:

unset($_SESSION['temp']); 

eine Sitzung zu zerstören:

session_destroy(); 

Hoffnung könnte dies sei hilfreich.

+0

auch erwähnenswert können Sie Sitzungen über [session.auto_start] automatisch starten (http://php.net/manual/en/session.configuration.php#ini.session .Auto-Start) –

1

Jede PHP-Datei muss eine session_start() der Lage sein, Session-Variablen zuzugreifen. Wie Sie sie zerstören können, überprüfen Sie die session_destroy Funktion. Wann sie zu zerstören sind? Nun, im Grunde tun Sie es, wenn Sie sie nicht mehr brauchen, zum Beispiel wenn Sie sich ausloggen.

0

Sie sollten dies als erste Zeile jeder Datei, die $_SESSION

session_start(); 

verwendet diese im aktuellen Skript zur Verfügung stellt. Hier ist die basics, siehe die Notiz nach dem Beispiel. Ansonsten ist Ihre Verwendung korrekt.