В настоящее время я пишу сайт, построенный на PHP, используя Parse.com для хранения данных сайта. Я использовал parse в нескольких проектах раньше, и некоторые из функций очень хорошо подходят. Теперь я столкнулся с проблемой, когда зарегистрированный пользователь не может быть обнаружен должным образом.
<?php use Parse\ParseClient; use Parse\ParseObject; use Parse\ParseQuery; use Parse\ParseGeoPoint; use Parse\ParseUser; ParseClient::initialize('Omitted', 'Omitted', 'Omitted'); (... truncated) function get_user(){ //BROKEN. //TODO: Fix $currentUser = ParseUser::getCurrentUser(); if ($currentUser) { return $currentUser->getObjectId(); } else { return false; } } (... truncated) ?>
Этот код только незначительно модифицирован из того, что в PHP-примерах, данных синтаксическим разбором, но, кажется, возвращает false независимо от состояния «Записан»,
Сеанс сеанса вызывается для обеспечения выполнения сеанса, а вызов print_r($_SESSION)
выводит дамп, который включает соответствующий пользовательский объект.
Я понимаю, что это, вероятно, что-то глупое, что я пропустил, но любые указатели в правильном направлении были бы очень оценены.
Для справки здесь – я использовал выделенный сервер Windows, который был настроен несколько нестандартным образом. Мы с тех пор перешли с сервера Windows, потому что Windows – а также заграждение несвязанных проблем означали, что проще было использовать CentOS.
Эта проблема была решена путем явного вызова средства хранения сеанса сеанса синтаксического анализа – ParseClient::setStorage( new ParseSessionStorage() );
Это было неожиданно, поскольку глобальный $_SESSION
содержал соответствующую информацию, но синтаксический разбор не подбирал бы это до тех пор, пока не будет установлено хранилище сеансов.