无法通过jQuery从外部php脚本访问php cookie

时间:2013-03-25 14:10:56

标签: php jquery mysql

我正在用php编写一个页面(例如index.php),它使用通过jQuery $.post函数调用的外部php脚本(do.php)。

我正在传递一个名为doit的post变量,它确定脚本将执行的操作。例如,如果doit为1,它会为用户分配一个唯一的id,并使用setcookie()函数将其存储在名为uid的cookie中。如果doit为2,则将另一个名为msg的帖子数据输入到表中,它通过名称t + uid创建。例如。如果uid为14,它会创建一个名为t14的表,并将msg放入其中。

我使用以下代码行来设置cookie:

setcookie("uid", $val, time()+3600, '/');

这行代码创建表:

$q = "create table t".$_COOKIE["uid"]." (sl int primary key auto_increment, msg varchar(1000), seen int);";
mysql_query($q);

现在我的问题是: sql查询正确执行,但我没有从cookie变量中获取任何值。创建的表名为t。

我的问题是: 我究竟做错了什么?我该怎么办才能正确得到一个值?

P.S:当我检查我的页面设置的cookie时,我在那里看到了cookie。我尝试清除cookie并再次尝试,但每次都正确设置cookie,但不是表格。

还有另一个问题。只有刷新页面后才会执行sql查询。例如,我有另一个名为uu的表,我在其中存储当前用户的uid和其他一些信息。该表中的最后一行包含先前的uid而不是当前的uid。如果这次uid为10,并刷新页面并将uid设为11,那么uu = 10的信息将在uu表中更新。

非常感谢任何帮助:-)谢谢。

1 个答案:

答案 0 :(得分:0)

PHP的setcookie函数在Response Header中发送cookie。如果在收到index.php的响应之前执行了AJAX调用,那么您可能无法在请求中获取cookie。

您可以尝试在按钮/链接上点击$ .post请求,并检查您是否在请求中获取了Cookie。如果可能,请提供完整的代码(PHP和JavaScript)