我使它工作的方式是创建一个专用控制器来处理我在多个页面上重复的表单,即somedomain.com/form/callmeback/
到目前为止一切都很好。但是,一旦验证器完成它的工作,我需要返回到提交表单的页面,显示要显示的错误列表或发送消息,然后返回原始表单页面并显示成功消息。
实现这一目标的“最佳”方式是什么?
到目前为止,我的想法一直停留在使用$_SERVER['HTTP_REFERER']
或以 acurrent_url()
作为其值的隐藏字段上,然后就这样做,header('Location:'.$_POST['ref'])
但这不允许我发回验证错误。
[编辑]
最后,我使用 codeIgniter 会话闪存数据功能解决了我的问题
//redirect back to source
if($_SERVER['HTTP_REFERER'] && strpos($_SERVER['HTTP_REFERER'], base_url()) !== false) {
//do form handling stuff here
$this->session->set_flashdata('callmeback_errors', validation_errors());
header('Location:' . $_SERVER['HTTP_REFERER']);
} else {
//invalid referer, do nothing say nothing, pretend the page doesn't exist
show_404();
}
谢谢你的想法:)