Я считаю, redirect
использует header()
. Если это так, я не верю, что вы можете отправить данные вместе с заголовком местоположения. Вы можете сделать то же самое, используя переменные сеанса или (не так хорошо) добавив строку запроса к URL-адресу местоположения.
Чтобы получить «принятый» способ сделать это в CodeIgniter, посмотрите чуть больше, чем на полпути вниз по странице документации class class .
CodeIgniter поддерживает «флэш-данные» или данные сеанса, которые будут доступны только для следующего запроса к серверу, а затем автоматически очищаются. Они могут быть очень полезны и обычно используются для информационных сообщений или сообщений о состоянии (например: «запись 2 удалена»).
Эта (теперь удаленная - вот архивная версия ) запись во флэш-сообщениях охватывает как строку запроса, так и метод var сессии.
Обновление : Чтобы подвести итог удаленного сообщения, оно показало как urlencoding сообщения и добавление в виде строки запроса (пример из сообщения):
header('Location: http://www.example.com/index.php?message='.urlencode($message));
И установка переменной 'flash' с использованием двух фреймворков (пример из поста):
//Zend Framework
$flashMessenger = $this->_helper->FlashMessenger;
$flashMessenger->setNamespace('actionErrors');
$flashMessenger->addMessage($message);
//CakePHP
$this->Session->setFlash('Your post has been saved.');
$this->redirect('/news/index');
Конечно, вы можете сделать примерно то же самое, используя $_SESSION
напрямую (мой пример):
//first request
$_SESSION['flash'] = 'This is a simple flash message.';
//next request
$flash = $_SESSION['flash'];
unset($_SESSION['flash']); //flash is one time only