android — Обработка сессии для PHP-сервлета с несколькими PHP

Я разрабатываю игру для Android, которая использует PHP-сервлеты для доступа к базе данных. Это несколько файлов PHP. Мое приложение для Android запрашивает у PHP-файлов данные, хранящиеся в базе данных.
Я пытаюсь реализовать какое-то управление сессиями для моих PHP-сервлетов.
В PHP-референте к логину пользователя (login.php) я добавил

session_start();
// set time-out period (in seconds)
$inactive = 1800;

// check to see if $_SESSION["timeout"] is set
if (isset($_SESSION["timeout"])) {
// calculate the session's "time to live"$sessionTTL = time() - $_SESSION["timeout"];
if ($sessionTTL > $inactive) {
session_destroy();
echo "fazer_login_novamente";
}
}

$_SESSION["timeout"] = time();
while($row=mysql_fetch_assoc($result)){
$json[]=$row;
}

Сразу после того, как пользователь успешно вошел в систему. Теперь, после входа в систему, приложение запрашивает слова, хранящиеся в базе данных, подключаясь к другому файлу PHP. Этот новый php (words.php) проверяет, запустил ли пользователь сессию, или он пытается угнать ее через PHP-функцию checkSession по этой ссылке:http://php.net/manual/pt_BR/function.session-regenerate-id.php

Но кажется, что пользователь всегда получает исключение «сессия не началась» при подключении к words.php.

Что я делаю неправильно? Вы можете мне помочь?

РЕДАКТИРОВАТЬ: вот ссылка на words.php: https://www.dropbox.com/s/23em2h3l3hj1via/login.php?dl=0

РЕДАКТИРОВАТЬ: вот ссылка на login.php: https://www.dropbox.com/s/1hp6udivy8whvl8/words.php?dl=0

1

Решение

Возможно, в login.php добавьте переменную вроде

$_SESSION['session_set']=true;

И, в words.php, сделайте это:

session_start();
if(isset($_SESSION['session_set']) {
//session set (by login.php)
}
else {
//session not set (by login.php)
}

Вы должны знать, что в начале каждого php-файла вы должны использовать session_start (); чтобы получить доступ к переменной $ _SESSION.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]