Переадресация с помощью флеш-сообщения ci - PullRequest
0 голосов
/ 24 мая 2019

Я пытаюсь перенаправить после выполнения некоторого кода с помощью флеш-сообщения, затем зависание Apache и ошибка отправки

Не удается изменить информацию заголовка - заголовки уже отправлены

   public function convert_to_invoice($id)
{
    if (!has_permission('invoices', '', 'create')) {
        access_denied('invoices');
    }
    if (!$id) {
        die('No estimate found');
    }
    $draft_invoice = false;
    if ($this->input->get('save_as_draft')) {
        $draft_invoice = true;
    }
    $invoiceid = $this->estimates_model->convert_to_invoice($id, false, $draft_invoice);
    if ($invoiceid) {
            $this->session->set_flashdata('message-success','estimate_convert_to_invoice_successfully');
            redirect('invoices/list_invoices/' . $invoiceid); 
    } else {
        if ($this->session->has_userdata('estimate_pipeline') && $this->session->userdata('estimate_pipeline') == 'true') {
            $this->session->set_flashdata('estimateid', $id);
        }
        if ($this->set_estimate_pipeline_autoload($id)) {
            redirect($_SERVER['HTTP_REFERER']);
        } else {
            redirect(admin_url('estimates/list_estimates/' . $id));
        }
    }
}

1 Ответ

0 голосов
/ 24 мая 2019

Поскольку redirect использует заголовки для выполнения своей задачи , ничего не может быть выведено до его вызова. Я не вижу ничего, что могло бы вызвать вывод, кроме:

if (!has_permission('invoices', '', 'create')) {
        access_denied('invoices'); // exits?
    }
    if (!$id) {
        die('No estimate found');
    }

Однако оба, похоже, выходят, поэтому этап redirect не должен быть достигнут.

Я бы предложил временно удалить перенаправления, запустить скрипт и посмотреть, что выводится. Затем вы можете удалить / отключить эти оскорбительные части кода и восстановить перенаправления. Это может быть так же просто, как вывод ошибки.

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