2013-03-06 4 views
1

У меня есть сайт CakePHP 2.x, над которым я работаю, как это предусмотрено локально. Работа с входами, работа с флэш-сообщениями сеанса и т. Д. Когда я нажимаю код на мой сервер/сервер prod, он ломается.CakePHP 2.x сеансы ведут себя непоследовательно между локальными разработчиками и производством

Логины больше не работают, не появляются сеанса флэш-сообщения, некоторые действия контроллера, которые должны быть пересылают в/пользователя/логин не показываете ничего (пустой документ) и т.д.

Я в недоумении относительно того, что проблема была бы. Основываясь на проблемах, которые я испытываю, и некоторые поиски, которые я сделал, я считаю, что я исключил проблемы, подобные пробелам, после закрытия ?> в PHP-файле (контроллерах) только для кода. Я использую сеансы DB, и я вижу записи сеанса, созданные в БД, в моем локальном экземпляре, но не на экземпляре удаленного промежуточного/промежуточного.

Любая помощь будет высоко оценена. Благодарю.

+0

Вы можете подключиться к базе данных с производственных серверов через те же пользовательские кредиты? – skrilled

+0

Различные БД и разные кредиты, но да, соединение БД работает. Я просто сделал тест, добавив новую запись пользователя и получив подобное странное поведение. Добавленная форма загружена/отображена, нажав кнопку отправки (которая была отправлена ​​на тот же/users/add URL), я получил полностью пустой/пустой документ, вернувшись в представление/users/index, я увидел, что новая запись была добавлена. Bizarre. – theraccoonbear

ответ

2

Одна из рекомендаций, я наткнулся часто было для того, чтобы там не было пробелов после закрытия PHP-тега в файле только для кода (или, желательно, на самом деле не иметь закрывающего тега PHP). Проверка всех моих файлов показала, что это так. Однако каким-то образом мне удалось поместить один разрыв строки до открытия PHP-тега в AppController.php, и это было проблемой. Приношу свои извинения всем, кто потратил время на это. Я просто надеюсь, что это поможет кому-то в будущем, который неуклюже совершает ту же ошибку.

+0

Я все еще удивляюсь, почему все работает отлично на моем локальном экземпляре (Mac OS) и коллеге (Windows), но не на промежуточном сервере (Linux). – theraccoonbear

2

В вашем приложении/Config/core.php проверьте эти вещи.

  1. Если вы используете SSL и не-SSL протоколы на основе, убедитесь, что вы cookie_secure установить как ложь.

    Configure::write('Session', array(
        'defaults' => 'php', 
        'ini' => array(
         'session.cookie_secure' => false 
        ) 
    )); 
    
  2. Попробуйте изменить конфигурацию сеанса из PHP по умолчанию для торта или дб, как

    Configure::write('Session', array(
        'defaults' => 'php', // change 'php' to 'cake' or 'database' 
        'cookie' => 'my_app', 
        'timeout' => 4320 //3 days 
    )); 
    
  3. Также попробуйте установить Session.checkAgent ложь, только на этот раз, чтобы убедиться, если это проблема в браузере ,

  4. Попробуйте изменить Session.name вашей сессии, он по умолчанию 'CakePHP'

    Configure::write('Session', array(
        'name' => 'New-Session-name' 
        'defaults' => 'php', // change 'php' to 'cake' or 'database' 
        'cookie' => 'my_app', 
        'timeout' => 4320 //3 days 
    )); 
    
  5. Удалить все файлы кэша из всех подкаталогов/приложение/TMP

  6. Set уровень отладки выше 1, чтобы обновить кеш. Если вы все еще не видите ошибку, попробуйте установить error_reporting в true в php.ini. (Хотя, это один совершенно очевиден, я до сих пор указую это в случае, если вы, возможно, пропустили его)

Надеется, что это помогает

+0

Я изучил эти предметы (по крайней мере, те, которые применяются в моем случае), и ни один из них, похоже, не является проблемой или, по крайней мере, не показывает ничего. Я замечаю более основную проблему, которая, по-видимому, заключается в том, что те действия, которые должны быть перенаправлены, по какой-то причине не являются. Добавление новых записей (и записи успешно добавляются) приводит к пустой странице с 200 ответами HTTP вместо ожидаемых 302. Почему существует такая несогласованность в поведении между моими локальными и промежуточными средами, и все еще остается загадкой. Спасибо за ваши предложения. – theraccoonbear