作者hereq (here q)
看板PHP
标题[请益] session无法连续正常纪录请教
时间Tue Jun 3 13:09:00 2008
小弟有个问题想请教一下大家,在发文前有先看过旧文了,
只是仍没有很了解,所以在发文请教。
我的程式有很多个页面,p1、p2、p3、p4....
我希望能纪录每个使用者在每个页面中是点选哪个选项。
所以程式部分我分成两个部份,
一个是用来写入资料库的a.php,
一个是让人点选的页面p.php(也就是上面的p1、p2...)。
关於写入资料库的a.php
===================================================
<?php
$SessionID=$_REQUEST['tSessionID'];
$ClickID=$_REQUEST['tClickID'];
echo $SessionID."_".$ClickID;
//连接MySQL伺服器
$link_ID = mysql_connect("localhost","root");
//使用contact资料库
mysql_select_db("test");
//设定查询字串
$str="insert into test (SessionID, ClickID)
values ('$SessionID','$ClickID')";
//送出查询字串
mysql_query($str,$link_ID);
//关闭资料库连接
mysql_close($link_ID);
?>
===================================================
而用来让人点选的页面p1.php、p2.php内容像这样
===================================================
<?php
$lifeTime = 24 * 3600;
session_set_cookie_params($lifeTime);
session_start();
$SessionID=session_id();
?>
<body>
<form name="Form1" method="post" action="add_data.php">
<input type="hidden" name="tSessionID" value="<?php echo $SessionID
?>"></input>
<input type="hidden" name="tClickID" value=""></input>
</form>
<a href="#" onclick="FormSubmit('01')">连结1</a><br/>
<a href="#" onclick="FormSubmit('02')">连结2</a><br/>
<a href="#" onclick="FormSubmit('03')">连结3</a><br/>
</body>
<script language="javascript">
function FormSubmit(sID){
Form1.tClickID.value=sID;
Form1.submit();
}
</script>
</html>
===================================================
我是用sessionid来辨识每个使用者在每个页面是点哪个选项,
当用户a开始点我的页面时,就会产生一个sessionid,
当a在下一个页面点选另一个选项时,便会在产生一栏,同样的sessionid,
但纪录这用户在这页面点选的选项。
sessionid 点击选项
-------------------------------
id1 02
id1 06
: :
: :
: :
id1 *
但现在遇到一个问题,有时候点击的时间间隔太短,或是太长,
那笔纪录就会没记到资料库里头,要等下一笔才会再看到写入。
也就是20个页面应该会有20笔,但是有时会会有好几笔都遗失掉。
不晓得是否我程式部份要怎麽修改呢?
谢谢大家
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.129.26.232
1F:推 angelrabbit:改用阵列方式储存SESSION看看呢? 06/03 20:08