没有 Cookie 的 PHP 会话 | Codeigniter [关闭]
Posted
技术标签:
【中文标题】没有 Cookie 的 PHP 会话 | Codeigniter [关闭]【英文标题】:PHP Session without Cookies | Codeigniter [closed] 【发布时间】:2013-06-18 17:16:41 【问题描述】:场景
我正在研究一种使用短信进行呼叫的特殊 API。
在这里用户发送短信喜欢
<APP NAME> <PARAMETERS>
到网关说 9888888888。现在网关服务器以这种格式联系应用程序的 API(在本例中是我的应用程序)http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=<PARAMETERS>
问题
当用户是新用户时,我向他显示欢迎信息并询问他的选项,例如 1> 注册 2>帮助 3>某事。假设他回复1
或2
或3
。网关会向我发送一个类似 http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=1
的请求现在这意味着用户想要注册,但我将如何告诉服务器。这里很简单,只需将注册页面编码为每次出现$_GET['userInput']==1
等等每个号码。
但是当您使用应用程序的其他部分时,问题就出现了。就像我要求用户在他想做某项工作时回复 1 一样。在这种情况下,服务器将如何判断注册或执行该工作?
当我只有一个参数传递给我时,我将如何判断用户想要什么。例如,我有两个页面,一个是用户回复 1,他想插入一些东西,另一个页面是用户回复 1,当他想联系我时。
【问题讨论】:
不知道你在问什么对不起 您不能将手机号码连接到数据库中的伪 cookie 以跟踪用户在此过程中的位置吗? @user1618143 你能否描述或链接一个实施它的例子。这个场景是新的 【参考方案1】:使用基于数据库的会话来跟踪用户在进程中的位置。例如考虑表格:
CREATE TABLE `mobile_session` (
`mobile_number` VARCHAR(10) NOT NULL PRIMARY KEY,
`stage` TINYINT(2) NOT NULL
);
每个可能的用户输入组都分配有一个内部标识符,例如您的注册页面可以是 1,联系页面可以是 2,等等。每当用户与您联系时,使用他们的手机号码和组更新数据库他们期待回来的输入。例如,如果 1 是您的注册页面。
REPLACE INTO `mobile_session` VALUES ([[users phone number]], '1');
那么当你收到这样的请求时:
http://myapi.com/myapp/api.php?mobileNo=912345678&userInput=1
您可以在表格中查找该电话号码以查看用户正在回复哪组输入,在这种情况下,您将知道用户正在回复注册页面。
【讨论】:
以上是关于没有 Cookie 的 PHP 会话 | Codeigniter [关闭]的主要内容,如果未能解决你的问题,请参考以下文章