2016-10-15 8 views
-1

Ich versuche, Sitzungsvariablen zu verstehen, indem ich diesen Code ausprobiere. Für den Zweck des Tests habe ich 3 Seiten erstellt und versucht, die Sitzungsvariablen zu übergeben. Mir ist aufgefallen, dass die Sitzungsvariable auf der 3. Seite nicht gefüllt ist. Ich habe gesucht, um zu sehen, wo das Problem liegt, und ich muss es noch herausfinden.Probleme beim Übergeben von Sitzungsvariablen mit PHP

page1

<!DOCTYPE html> 
<html lang="en">  
    <head> 
     <meta charset="UTF-8"> 
     <title>Bio Data</title> 
    </head> 
    <body> 
     <form action="process.php" method="post"> 
      <label for="fst_name"> 
       First Name 
       <input type="text" name="fst_name" id="fst_name"> 
      </label> 

      <label for="lst_name"> 
       Last Name 
       <input type="text" name="lst_name" id="lst_name"> 
      </label> 

      <input name="submit" type="submit" value=" Login "> 
     </form> 
    </body> 
</html> 

page2

<?php 
session_start(); 

if (isset($_POST["submit"])){   
    $_SESSION['fst_name'] = $_POST['fst_name'] ; 
    $_SESSION['lst_name' ] = $_POST['lst_name'] ; 
    header("location:display.php"); 
}else{ 
    echo "Error"; 
} 

page3

<?php 
session_start(); 
echo $_SESSION['fst_name']; 
?> 
<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Biodata Display</title> 
    </head> 
    <body> 
     <table> 
      <tr> 
       <td><?php echo "Hello " . $_SESSION['fst_name']; ?></td> 
       <td><?php echo $_SESSION['lst_name']; ?></td> 
      </tr> 
     </table>  
    </body> 
</html> 
+0

das sieht alles gut für mich .. haben Sie getestet, wenn Sie '$ _SESSION ['fst_name']' in page2 mit dem erwarteten Wert haben, oder hat $ _POST die erwarteten Werte? – Jeff

+0

* "Die Sitzungsvariable ist in der 3. Seite nicht ausgefüllt" * - Welche, Sie haben zwei und können nicht sehen, wo Sie '$ _SESSION ['last'] 'etwas zugewiesen haben. –

+0

@Jeff '$ _SESSION ['fst_name'] haben Werte auf Seite2. @ Fred-ii- Ich habe den Code korrigiert. Keine der Sitzungsvariablen wird auf Seite 3 angezeigt. –

Antwort

1

Sessions in PHP Arbeit von Savin Auf der Seite eines Datendateiservers wird von einem speziellen Cookie (standardmäßig PHPSESSID) referenziert. Wenn Ihr Browser das richtige Cookie sendet, ruft PHP den vorherigen $ _SESSION-Wert aus den gespeicherten Datendateien ab. Das bedeutet:

  1. Ihr Server Dateien (in der Regel in tmp dir, überprüft PHP INI-Einstellungen Schreib der Lage sein muß, um Speicherpfad der Session im Zusammenhang
  2. Ihr Browser muss Cookies akzeptieren (Sie dies leicht überprüfen können Dumping $ _COOKIE)

Ihren Test zu vereinfachen, eine einzelne Seite wie folgt erstellen:

<?php 
session_start(); 
header("Content-Type: text/plain"); 
var_dump($_COOKIE); 
var_dump($_SESSION); 
$_SESSION['hello'] = "world"; 

Nachdem Sie loa D Diese Seite ZWEIMAL sollten Sie die richtigen Daten in $ _SESSION und $ _COOKIE sehen. Wenn es nicht funktioniert, liegt das Problem in Ihrem Server/Ihrer Umgebung. Wenn das funktioniert, schaue ich mir deinen Code nochmal an, aber auf den ersten Blick sah es gut aus.

+0

Ich bin zu sehen, die Daten in $ _SESSION auf der Seite2. Ich weiß wirklich nicht, warum es auf Seite 3 erscheint. –

Verwandte Themen