使用PHP在iPhone/iPod Touch上中断会话变量

使用PHP在iPhone/iPod Touch上中断会话变量,php,iphone,session,session-variables,ipod-touch,Php,Iphone,Session,Session Variables,Ipod Touch,我试图在一个页面上设置一个会话变量,然后在另一个页面上加载它。此代码适用于Windows7上的Firefox。在我的iPod Touch上访问相同页面时,它不起作用 第一页是这样的: session_start(); $id = "e0vgrejdmkjbltrdrtqtnjgzmy1cqurfluuzodeyqjlcoey5rx0"; $_SESSION['id'] = $id; 第二页包含以下代码: session_start(); $id = $_SESSION['id']; echo

我试图在一个页面上设置一个会话变量,然后在另一个页面上加载它。此代码适用于Windows7上的Firefox。在我的iPod Touch上访问相同页面时,它不起作用

第一页是这样的:

session_start(); 
$id = "e0vgrejdmkjbltrdrtqtnjgzmy1cqurfluuzodeyqjlcoey5rx0";
$_SESSION['id'] = $id;
第二页包含以下代码:

session_start();
$id = $_SESSION['id'];
echo "ID is $id";
echo "Cookie ";
print_r($_COOKIE);
echo "Session ";
print_r($_SESSION);
然后,输出显示为:

ID is 
如果我运行此代码:

session_start();
$id = $_SESSION['id'];
echo "ID is $id";
echo "Cookie ";
print_r($_COOKIE);
echo "Session ";
print_r($_SESSION);
我的Windows计算机上的输出为:

Cookies Array ( [__utma] => 118825363.834893446.1282611798.1283521628.1283525684.13 [__utmz] => 118825363.1283397018.9.7.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=spf test [PHPSESSID] => 6333ddae9f0514f7c4744e340a6746d1 [__utmc] => 118825363 [__utmb] => 118825363.5.10.1283525684 [id] => eza3odazrtcxlty5mdutoem2ms05ndqxltrcnzvgrjjbnzrgqn0 ) Session Array ( [id] => ezffmddgmdmxluvcmzmtruvfnc0wmdu4ltrfnzddnevfmdhfnx0 ) 
我的iPhone上的输出是:

Cookies Array ( [PHPSESSID] => 8ec43ead5611dde399d763166926021d [__utma] => 118825363.1927811493.1283218120.1283521676.1283525856.6 [__utmb] => 118825363.1.10.1283525856 [__utmc] => 118825363 [__utmz] => 118825363.1283490501.4.3.utmcsr=(mydomain.com)|utmccn=(referral)|utmcmd=referral|utmcct=/ ) Session Array ( [id] => )

没有发生错误,它只是将$id设置为“”我想。这似乎很简单。在苹果设备上做不到这一点的地方,我缺少什么吗?

区别一定在于cookies。 打印($\u COOKIES);
你会看到iPad/iPhone出于某种原因不想给你发送cookies,然后我们再看。

区别一定在于cookies。 打印($\u COOKIES); 您将看到iPad/iPhone出于某种原因不想向您发送cookies,然后我们将看到。

检查两个脚本中的
会话id()。由于某种原因,会话cookie很可能没有被iPhone存储,因此每次创建第二个页面时都会创建一个新会话,而不会存储上一个会话中的
id

在iphone上使用某种类型的线嗅探器(如果不能在手机上使用,则在服务器上使用),查看相应的cookie头是否来回移动。

检查两个脚本中的
会话id()。由于某种原因,会话cookie很可能没有被iPhone存储,因此每次创建第二个页面时都会创建一个新会话,而不会存储上一个会话中的
id


在iphone上使用某种类型的有线嗅探器(如果不能在手机上使用,则在服务器上使用),查看相应的cookie头是否来回移动。

您的问题的答案很简单

$\u会话['id']已关闭。 如果您执行
$\u会话['id']='foo'下一页它将还原回其原始值

要更改会话id,请执行以下操作:

session_id('foo');

您调用的是
session_id('foo')
会话开始()之前
您的问题的答案很简单

$\u会话['id']已关闭。 如果您执行
$\u会话['id']='foo'下一页它将还原回其原始值

要更改会话id,请执行以下操作:

session_id('foo');

您调用的是
session_id('foo')
之前
会话_start()
已解决:我使用的是绝对URL而不是相对URL。我想这会把一切都搞砸。

解决了:我使用的是绝对URL而不是相对URL。我想这会把一切都搞砸。

您无法在iPhone上获得会话,因为cookie已禁用

请转到Safari>设置>接受iPhone中的Cookie,并将其设置为接受访问


然后您将能够用PHP创建会话。

您无法在iPhone上获取会话,因为cookie被禁用

请转到Safari>设置>接受iPhone中的Cookie,并将其设置为接受访问


然后您就可以用PHP创建会话。

第1页的
$id
是什么?您如何检查第2页上的
$id
内容?你只告诉了我们一半的情况。第1页的
$id
是什么?您如何检查第2页上的
$id
内容?你只给了我们一半的故事。好吧,我已经完成了这些步骤并添加了数据。我刚刚发现你实际上应该使用$\u COOKIE而不是$\u COOKIE。我更新了帖子。你为什么这么做$id=“e0vgrejdmkjbltrdrtqtnjgzmy1cqurfluuzodeyqjlcoey5rx0”$_会话['id']=$id?请在会话数组中尝试不同的键,如uid:-)好的,我已经完成了这些步骤并添加了数据。我刚刚发现您实际上应该使用$\u COOKIE而不是$\u COOKIES。我更新了帖子。你为什么这么做$id=“e0vgrejdmkjbltrdrtqtnjgzmy1cqurfluuzodeyqjlcoey5rx0”$_会话['id']=$id?请在会话数组中尝试不同的键,如uid:-)我只是尝试存储一个名为id的变量,它和“会话id”无关。因此,从您的评论中,我认为我可以使用不同的名称,因此我使用了:
$\u SESSION['new\u id']=$id它仍然不工作,嗯。PHPSESSID从一个页面更改到另一个页面。我只是尝试存储一个名为id的变量,它与“会话id”无关。因此,从您的评论中,我认为我可以使用不同的名称,因此我使用了:
$\u SESSION['new\u id']=$id仍然不起作用,嗯。PHPSESSID从一个页面更改到另一个页面。