PHP получить сессии, где имя похоже - PullRequest
0 голосов
/ 21 января 2012

Я храню сессии, и единственное, что их отличает, это конечный идентификатор, я храню их в этой форме chat_625265 случайные числа на конце - это идентификатор. Я хотел бы выбрать сеансы PHP, где они имеют начало chat_, а затем сохранить конечный номер в переменной, например. $session_num.

Я использую механизм сессии PHP, $_SESSION['some_name']=$some_content

Возможно ли это?

Ответы [ 2 ]

1 голос
/ 21 января 2012

Вы можете зациклить

foreach($_SESSION as $key => $value) {

    if (strpos($key, 'chat_') !== false) {

        //echo "SESSION['{$key}'] has a value of {$value}\n";

        $session_num[] = str_replace('chat_', '', $key);
    }
}
1 голос
/ 21 января 2012

Я собираюсь действовать в предположении, что вы пытаетесь сделать это загрузить сеанс другого пользователя.

Пока он технически Можно сделать это, это то, что вы не должны делать.Необходимость сделать это является признаком того, что вы поместили неправильные данные в неправильное место.

Сеансы предназначены для обхода факта, что HTTP является протоколом без сохранения состояния.Это удобное место для хранения временных данных, на которые должен ссылаться только текущий пользователь, выполняющий текущий запрос.

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

Обратите внимание, что это , а не то же самое, что хранение сеансов в базе данных.Обрабатывайте данные сеанса как двоичный двоичный объект, который вам не разрешено читать из SQL или вне механизма сеанса PHP.

Кроме того, убедитесь, что вы не предоставляете идентификаторы сеансов других пользователей.Это может быть огромным риском для безопасности.

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