我刚刚在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();