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