2013-06-21 2 views
-3

СценарийPHP-сессия без файлов cookie | Codeigniter

Я работаю на особый вид API, который использует смс для вызова.
Здесь пользователи отправляют смс как
<APP NAME> <PARAMETERS>
к шлюзу сказать 9888888888. Теперь сервер шлюза Contacts 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, когда он хочет связаться со мной.

+0

Не знаю, что вы просите, я сожалею – DevZer0

+1

Не можете ли вы просто подключить мобильный номер к псевдо-cookie в своей базе данных, чтобы отслеживать, где находится пользователь? – user1618143

+0

@ user1618143 Не могли бы вы описать или связать пример, где его реализовано. Этот сценарий является новым – VenomVipes

ответ

0

Используйте сеансы на основе базы данных, чтобы отслеживать, где находится пользователь. Для примера рассмотрим таблицу:

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 

Вы можете посмотреть на этот номер телефона в таблице, чтобы увидеть, что группа входов, которые пользователь заполнивших, в этом случае вы знайте, что пользователь отвечает на страницу регистрации.