在iPhone web应用上维护PHP会话



我刚刚在iPhone上创建了一个web应用程序。我可以打开它并登录,没有问题,但每当我返回应用程序时,它已经忘记了我以前的会话,我必须重新输入我的用户名和密码。

有一些其他的问题,但他们的答案并没有帮助我解决这个问题,因为我不确定在哪里放置PHP提供。

这是我找到的最好的答案:在iPhone的web应用程序中维护PHP会话

在答案中,Wilbo Baggins (https://stackoverflow.com/users/346440/wilbo-baggins)提供了以下代码:
// Start or resume session
session_start(); 
// Extend cookie life time by an amount of your liking
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds
setcookie(session_name(),session_id(),time()+$cookieLifetime);

我在网站的标题中输入了<?php?>标签之间的代码,但这并没有解决问题。我猜我把它放错地方了,所以我在找指导,告诉我应该把它放在哪里。

谢谢。

,

BUMP:是否有人可以帮助我解决这个问题,或者,至少,知道我如何与Wilbo Baggins (https://stackoverflow.com/users/346440/wilbo-baggins)取得联系?

在login.php中,当登录信息正确时添加以下代码:

session_start();
//your code here
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),"apple")) //to prevent cookies for non-apple devices
{
    $cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds
    setcookie("ses_id",session_id(),time()+$cookieLifetime);
}

然后,在每一个你想要恢复session_id的*.php中,在session_start()之前添加以下行:

if($_COOKIE['ses_id']){
    session_id($_COOKIE['ses_id']);
}
session_start();

在您的logout.php中,添加以下代码:

session_start();
$cookieLifetime = 365 * 24 * 60 * 60; // A year in seconds
setcookie("ses_id","",time()-$cookieLifetime); //set lifetime to negative to autodelete cookie
session_destroy();

最新更新