2016-10-15 11 views
-1

私はこのコードを試してセッション変数を理解しようとしています。テストの目的のために、私は3ページを作成し、セッション変数を渡そうとしました。私は、セッション変数が3番目のページに入力されていないことに気付きました。私は問題がどこにあるかを調べるために調査しましたが、まだそれを把握していません。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

これは私には大丈夫です。期待値でpage2に '$ _SESSION ['fst_name']'を持っているのか、$ _POSTに期待値があるのか​​テストしましたか? – Jeff

+0

* "セッション変数は第3ページに入力されていません" * - あなたは2つあり、 '$ _SESSION ['last']'に何かを割り当てた場所を見ることはできません。 –

+0

@Jeff '$ _SESSION ['fst_name']はpage2に値を持っています。 @ Fred-ii-私はコードを修正しました。セッション変数はページ3に表示されません。 –

答えて

1

セービンによってPHPの作業でセッションgは特別なクッキー(デフォルトではPHPSESSID)によって参照されるデータファイルサーバー側です。そのため、ブラウザが適切なクッキーを送信すると、PHPは以前の$ _SESSION値を保存したデータファイルから取り出します。これは、ことを意味します(通常のtmpディレクトリに、

  • パスセッションの保存に関連するPHP INIの設定を確認してくださいあなたのブラウザはクッキーを受け入れる必要があります(

    1. サーバーには書き込みファイルにできるようにする必要があり、あなたは簡単に、このことによってを確認することができますロアあなたの後

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

      :ダンピングの$ _COOKIE)

    は、このような単一のページを作成し、あなたのテストを簡素化するために、 dこのページTWICEでは、$ _SESSIONと$ _COOKIEに正しいデータが表示されます。それでも問題が解決しない場合は、サーバー/環境に問題があります。それがうまくいくとすれば、私はあなたのコードをもう一度見ていきますが、一見するとうまく見えます。

  • +0

    私はpage2の$ _SESSIONのデータを見ます。私は本当になぜそれがページ3に現れているのかわかりません。 –

    関連する問題