0

次のチェーンは正しいですか?

最初に、セッションを作成して $_SESSION['name'] = 'random_name' 内に保存し、エンド ユーザー クライアントに挨拶するクライアント home.php を表示します。

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


 <!DOCTYPE html>
 <html>
  <head>
        <title></title>
  </head>
  <body>
        <h1>Greeting</h1>
        <a id="1" href="index.php">link</a>
  </body>
  </html>  

次に、2 番目のページ index.php に移動するリンクを押します。このページは、ページ内の特定のロジックが次のように実行された後、$_SESSION['name'] 内の値をユーザーに表示する別のページに移動します。以下で説明します:

 <?php
    session_start();
  ?>
  <!DOCTYPE html>
  <html>
  <head>
        <script src="test.js"> </script>
        <title></title>
   </head>
   <body>
       <p id="para"></p>
       <input type="button" onclick="checkAuth()" value="submit">
   </body>
   </html>

ボタンを押すと、test.js 内の checkAuth() 関数がアクティブになり、AJAX を使用してサーバー側 (damn.php) から SESSION['name'] 内の値を取得します。

 function checkAuth()
 {
       var xmlhttp;
       if (window.XMLHttpRequest)
       {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
       }
       else
       {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
       }

              xmlhttp.onreadystatechange=function()
       {
       if (xmlhttp.readyState==4 && xmlhttp.status==200)
       {
          var response = xmlhttp.responseText;
          document.getElementById("para").innerHTML = response;
       }
   }

    xmlhttp.open("POST","damn.php",true);
    xmlhttp.send();
 }

今damn.phpはそのようになります:

       <?php

          session_start();

          if (isset($_SESSION['name'])) {
                   echo $_SESSION['name'];
          }

私の質問は、クライアントに $SESSION 内のアイテムを表示する最も簡単な方法はそのようなものですか?

JavaScript をまったく使用しない簡単な方法はありますか? すべてのページに session_start() を挿入することも正しいですか? または、SESSION['items'] を取得したいページからのみ?

4

1 に答える 1

0

あなたは非常に簡単に持つことができます

<?php

session_start();
$_SESSION['name'] = 'foo';

?>

<script type="text/javascript">
var name = <?php echo json_encode($_SESSION['name']) ; ?>;
</script>

Web ページ内で特定のセッション データが必要になることがわかっていて、そのデータがページの生成時に利用できる場合は、そのデータを埋め込むだけです。データを取得するために AJAX 呼び出しを行う唯一のケースは、セッション内のデータが実際に JavaScript コードで必要になる前に変更された可能性があると考えられる場合です。

session_start()$_SESSION を使用してデータを保存/取得する場合は、どこでも必要です。特定のページでセッション データを変更またはアクセスする必要がない場合は、その必要はまったくありませんsession_start()

于 2013-07-02T15:09:15.337 に答える