PHP会话ID不保留在iOS应用程序中

目前我的iOS应用程序正在从通过JSON使用PHP + MYSQL构建的服务器检索数据,然后在我的PHP中尝试回显session_id() 。 我的应用程序使用NSURLConnection sendAsynchronousRequest与PHP进行通信。

我尝试了3次请求相同的URL,返回的会话ID将有不同的值,我也在我的PHP中包含了session_start()

但是,如果我在浏览器中运行URL,无论运行多少次,会话ID始终是相同的。

这是我的iOS请求代码:

NSString *newURL = @"http://www.example.com/index.php?value=getData"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:[NSURL URLWithString:newURL]];
[NSURLConnection sendAsynchronousRequest:urlRequest queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
            if ([data length] >0 && error == nil){
                NSDictionary *myDict = [NSJSONSerialization
                                                JSONObjectWithData:data
                                                options:kNilOptions
                                                error:&error];
                NSLog(@"%@", myDict);
            }
        }];

请帮忙。 谢谢。


我在这里有一个类似的问题(在web视图中)。

尝试在PHP文件中增加会话Cookie的生命周期。

// Start session
session_start(); 

// Extend cookie life time by an amount of your liking
$lifetimecookie = 30 * 24 * 60 * 60; // A month 
setcookie(session_name(),session_id(),time()+$lifetimecookie);

您必须了解PHP如何将会话保留在服务器端。 这是通过将Cookie发送回客户端(PHPSESSID)完成的。 然后这个cookie随着您的浏览器的每个新请求被发送回服务器。

但是,您不使用浏览器,而是使用连接对象。 您需要将返回的会话ID保留在客户端,并在每次发出新请求时将其发送回服务器。 这是通过头文件完成的。 服务器的响应将包含Set-Cookie,您需要使用Cookie标头发送会话ID cookie。

链接地址: http://www.djcxy.com/p/41147.html

上一篇: PHP Session ID Not Retain in iOS App

下一篇: Keep state between webapi calls