我正在尝试为每个用户创建一个唯一的会话来存储一些数据。在这种情况下,用户是来自IOS应用程序的http请求,因此这里没有浏览器只是使用HTTP作为方便。因此,没有自动化的会话支持。每个客户端都是唯一标识的,因此我想将该名称用作其会话密钥。目标是计算每个客户向我们发送消息的次数。
session_name($sname."S");
session_start();
//If we have a stored server message index in the session we will use that instead of what
//we pulled from that database
if(isset($_SESSION['count']))
{
$serverMessageIndex = $_SESSION['count'];
}
else
{
$serverMessageIndex = $msgIndex - 1;
}
//Later
$_SESSION['count'] = $serverMessageIndex + 1;
这里的想法是,没有来自客户端的消息可以使用相同的号码发送两次,因为计数器一直在上升。然而,当我通过发送一些请求,每个请求的数量都比最后一个更高时,$ serverMessageIndex的打印输出显示2,2,7,2,2,7,正如我预期的那样1,2,3, -4,5,6,7-
客户端如何发送此信息的详细信息: 一个ios应用程序只生成一个参数的url请求。这是一个json变量加密和base64编码。 php从上面的变量$ sname中拉出json。此变量将在来自客户端的每个请求中可用。
答案 0 :(得分:0)
要使会话发挥作用,会话ID必须“回归”。到服务器。通过cookie或作为URL的一部分。由于没有浏览器,因此没有cookie。那么你应该使用基于URL的会话ID。仔细阅读http://php.net/manual/en/session.idpassing.php
虽然你尝试的也应该有效。请记住在php.ini中关闭自动会话启动