【问题标题】:Session information not maintained while AJAX requestsAJAX 请求时不维护会话信息
【发布时间】:2010-10-07 07:07:55
【问题描述】:

我在渲染页面时创建会话。之后,我每 4 秒调用一次 AJAX 页面。 AJAX 页面没有获取 Session 信息。

可能是什么原因。 ajax请求是否不维护Session信息?

代码:

普通 HTML

<body onload="timerint(11)">
<div style="display:none;">
    <button id="prev"><<</button>
    <button id="next">>></button>
</div>

<div class="anyClass">
    <ul id="news-ul">
        <?php 
          include('render_latest.php');
        ?>
    </ul>
</div>
</body>

render_latest.php

<?php
session_start(); 
$con = mysql_connect("localhost","root","root");
mysql_select_db("test_db", $con);
$i=1;

$lastresult=mysql_query("SELECT MAX(epoch) as latestepoch FROM list_data");

while($row = mysql_fetch_array($lastresult))
  {
    //$_session['lastepoch'] =  $row['latestepoch'] ;
    $_session['lastepoch']=12345;

  }

$result=mysql_query("SELECT * FROM list_data order by epoch desc LIMIT 4 ");
while($row = mysql_fetch_array($result))
  {
    echo '<li>';
    echo $row['list_item'] . '<br/>' ;
    echo $row['epoch'] . '<br/>';
    echo $_session['lastepoch'];
    echo '</li>';
  }

?> 

AJAX 页面

<?php
session_start(); 
$t=$_SESSION['lastepoch'];
$con = mysql_connect("localhost","root","root");
mysql_select_db("test_db", $con);

$result=mysql_query("SELECT * FROM list_data order by epoch desc LIMIT 1 ");

while($row = mysql_fetch_array($result))
  {
    echo '<li>';
    echo $t;
    echo $row['list_item'] ;
    echo '</li>';
  }

?> 

【问题讨论】:

    标签: php javascript ajax session


    【解决方案1】:

    可能是 render_latest.php 中的拼写错误。你使用 $_session 而不是 $_SESSION

    【讨论】:

      【解决方案2】:

      会话数据通常存储在所有浏览器的 cookie 中,或者您可以使用请求的查询字符串来传递参数。例如:.../render_latest.php?lastepoch=123456 并在您的 php 中读取 lastepoch 参数。

      或者您可以在现代浏览器中使用 HTML5 客户端存储。

      【讨论】:

      • 会话数据不存储在 cookie 中。 cookie 只存储会话 id,实际数据在服务器上。这家伙的问题是会话数据由于某种原因根本没有被存储。
      • @slavic,可能不清楚,但我想说的是,当您开始使用 ajax 时,您通常是无状态的,如果需要客户端,您可以存储会话数据。
      • 当然可以将一些存储能力委托给浏览器,但不能用于用户名和密码等情况。
      • 显然,但这里是关于约会的。而且我也不确定在会话中存储用户/密码是否是个好主意。
      猜你喜欢
      • 2011-07-21
      • 1970-01-01
      • 1970-01-01
      • 2013-12-17
      • 1970-01-01
      • 2010-10-15
      • 2013-11-25
      • 2013-08-03
      相关资源
      最近更新 更多