【发布时间】:2013-03-24 06:14:12
【问题描述】:
我有一个页面 a,我将来自 python 脚本的数据发布到该页面。我正在处理该数据,将数据存储到 SQL 中。我想存储发出此帖子请求的时间。 请注意,发布请求是连续发出的。所以会话变量不断变化。好吧,这里是那个小代码-
<?PHP
session_start();
include 'db.inc.php';
if(isset($_POST['data']){
$data_decode = (array)json_decode($_POST['data']);
$data_var1 = $data_decode['var1'];
$data_var2 = $data_decode['var2'];
$data_var3 = $data_decode['var3'];
$date = date('Y-m-d H:i:s');
$_SESSION['time'] = $date; //Set the session with current time
$sql = "UPDATE `table` SET row1=$data_var1, row2=$data_var2 WHERE row3=$data_var3";
$result = mysqli_query($db,$link) or die('Table could not be updated');
echo "Following data inserted: row1=$data_var1, row2=$data_var2, at $_SESSION['time']"; //Echoing the data and time as expected
?>
现在,我在同一个域上有另一个页面,它发出 ajax 请求并每秒从我刚刚插入数据的 SQL 表中取出数据。所以这是整个场景——客户端python脚本向网页发出post请求,用接收到的数据更新sql,设置会话变量。另一个页面同时使用 ajax 获取该数据并显示它。
现在我在另一个页面上调用会话变量,如图所示-
<?php
session_start();
if(isset($_SESSION['time']){ echo $_SESSION['time']; } //Didn't echoes anything
?>
我用<?php print_r($_SESSION) ?>检查会话变量是否设置,它回显“Array()”,这意味着我的会话变量没有设置。所以我的问题是,我做错了什么,我该如何纠正?
【问题讨论】:
-
在每一页调用
session_start(); -
对不起,我忘了说,我在每一页都叫它
-
您是否验证过数据正在发布?由于会话时间是基于 if(isset($_POST['data']) 设置的,所以可能没有设置
-
是的,我看到每一秒,数据都被插入到 SQL 表中,并显示抛出了 ajax 调用。唯一缺少的是没有为任何呼叫设置会话。
-
$result = mysqli_query($db,$sql)
标签: php ajax session session-variables