简体   繁体   中英

Php $_SESSION value lost on iphone

As you can see here here my site uses sessions to send some data from pedidos.php to procesa_pedido.php.

While this works on PC, it just won't work on my iPhone.

After some research, I've found that this might have something to do with enabling cookies. I want to avoid the user from having to "accept using cookies" (not user friendly).

Any help is much appreciated. Here's the code that works on PC and not on iPhone:

First php

session_start();

$apunte=$row['apunte'];
$_SESSION['apunte']=$apunte;

Second php

session_start();
$apunte=$_SESSION['apunte'];
echo $apunte; echo '<br/>';

Yes, based on your description, it does sound like the issue is related to cookies. Needless to say, there's no way to have cookie-based sessions without cookies. If this is a common issue for your users, there are alternatives to cookie-based sessions. You can try passing the session ID in the URL as a GET parameter. See this php.ini setting for more details: http://php.net/manual/en/session.configuration.php#ini.session.use-cookies

Note that there are security issues to using this alternative approach. For example, if I log into a site and my session ID is stored in the URL, then I copy/paste that URL to my friend on Facebook, my friend will be logged in as me when they click the link (assuming the session hasn't expired yet). This is probably why the PHP manual recommends cookie-based sessions for maximum security. See: http://php.net/manual/en/session.security.php

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM