gpt4 book ai didi

php - 在 CodeIgniter 中发送数据和重定向

转载 作者:IT王子 更新时间:2023-10-29 01:18:11 25 4
gpt4 key购买 nike

我有一个简单的 C(CRUD)函数,我想发送一条消息(错误或成功)以及从我编写的“插入”函数重定向。有没有办法通过重定向来遵守 POST 字段?

在伪代码中我有:

function view_all{
//set up some initial variables
$this->load->view(viewing_page, $data)
}

function insert{
if ($this->db->insert(my_table, $_POST)){
$message = "All's well";
}
else {
$message = "whoops!";
}
redirect(view_all);
}

因此,viewing_page 理想情况下应该有类似

if (isset($message)){
echo $message
}

所以在第一次通过时,我看不到任何消息,并且当/如果有插入时,它会弹出与消息相同的页面。谢谢!

最佳答案

我相信 redirect 使用 header()。如果是这样,我认为您不能将数据与位置 header 一起发送。您可以使用 session 变量或(不太好)将查询字符串附加到位置 URL 来完成同样的事情。

对于在 CodeIgniter 中执行此操作的“可接受”方式,请查看 session class 的一半以上。文档页面。

CodeIgniter supports "flashdata", or session data that will only be available for the next server request, and are then automatically cleared. These can be very useful, and are typically used for informational or status messages (for example: "record 2 deleted").

这个(现已删除 - 这是一个 archived version )post on flash messages涵盖查询字符串和 session 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

关于php - 在 CodeIgniter 中发送数据和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1837467/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com