Страница возврата Codeigniter set_flashdata не может быть отображена только на этом сервере - PullRequest
1 голос
/ 12 февраля 2012

Хорошо, это странно. Я только что переместил код CodeIgniter на веб-сайт моего клиента serverlogic.com. Этот код работал на более чем 40 других серверах, но теперь я неожиданно сталкиваюсь со стенами. Я использую сеансы БД.

Это не работает:

$this->session->set_flashdata('contact_message', validation_errors());
$this->session->set_flashdata('first_name', $this->input->post('first_name'));
$this->session->set_flashdata('last_name', $this->input->post('last_name'));
$this->session->set_flashdata('email', $this->input->post('email'));
$this->session->set_flashdata('zip', $this->input->post('zip'));
$this->session->set_flashdata('phone', $this->input->post('phone'));
$this->session->set_flashdata('comments', $this->input->post('comments'));

Это работает:

$this->session->set_flashdata('contact_message', validation_errors());
$this->session->set_flashdata('first_name', $this->input->post('first_name'));
$this->session->set_flashdata('last_name', $this->input->post('last_name'));
$this->session->set_flashdata('email', $this->input->post('email'));
/*$this->session->set_flashdata('zip', $this->input->post('zip'));
$this->session->set_flashdata('phone', $this->input->post('phone'));
$this->session->set_flashdata('comments', $this->input->post('comments'));*/

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

Я также получаю файл cookie PHPSESSID с их сервера, но не знаю, откуда он. я не являюсь администратором сервера, и, поскольку они используют Nginx, я в полном неведении.

Ответы [ 2 ]

0 голосов
/ 12 февраля 2012

Поскольку метод set_flashdata () использует файлы cookie для отслеживания данных, может ли случиться так, что будет установлен некоторый лимит сервера, если в файлах cookie хранится слишком много данных?При исследовании заголовков на моем сервере он устанавливает больше файлов cookie по сравнению с этим сервером.

Вы только что ответили на свой вопрос,

Как вы сказали, flashdata использует файлы cookie для хранения данных,тот факт, что только этот один сервер означает возможность двух вещей.

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

  • Этот сервер сам устанавливает больше файлов cookie (возможно с nginx), это также может быть проблемой с nginxвыполнить некоторую форму внутренней перезаписи ваших файлов cookie, чтобы из-за проблемы с доменом файлы cookie не работали должным образом, но это менее вероятно.

Вы сказали, что получить страницу невозможнобудет отображаться ошибка, мое предложение, загляните в журналы сервера, чтобы выяснить, есть ли какие-либо ошибки.Затем проверьте куки с помощью инструментов разработчика Chrome или аналогичных, выясните, не выглядят ли данные как внезапно обрезанные.

0 голосов
/ 12 февраля 2012

Вы пытались закомментировать каждую set_flashdata, чтобы увидеть, является ли это одним конкретным утверждением?Или вы работали в обратном направлении от комментариев?Или вы просто начали с zip?

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

Может быть, дважды проверьте структуру таблицы с другими таблицами, которые выопределили на серверах.

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