Я только что создал веб-приложение на своем iPhone. Я могу открыть его и войти в систему без проблем, но всякий раз, когда я возвращаюсь в приложение, он забыл мою предыдущую сессию, и мне нужно повторно ввести свое имя пользователя и пароль.
Было еще несколько вопросов по этому поводу, но их ответы не помогли мне решить проблему, потому что я не уверен, где поставить PHP, который был предоставлен.
Это лучший ответ, который я нашел: поддерживать сеанс PHP в веб-приложении на iPhone
В ответ 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
и ?>
В заголовке веб-сайта, но это не решило проблему. Я предполагаю, что я помещаю его в неправильное место, поэтому я ищу руководство, которое объяснит, где я должен его поместить.
Благодарю.
–
БУМП: Кто-нибудь может помочь мне решить эту проблему или, по крайней мере, знает, как я могу связаться с Уилбо Бэггинсом ( 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); }
Затем, в любом другом * .php, вы хотите, чтобы ваш session_id был восстановлен, добавьте следующую строку перед 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();
Надеюсь это поможет.