gpt4 book ai didi

php - 使用 session 变量的 CodeIgniter 表单验证

转载 作者:搜寻专家 更新时间:2023-10-31 21:36:37 25 4
gpt4 key购买 nike

如果没有传递表单数据,我如何让 CodeIgniter 表单验证来验证 $_SESSION?我尝试手动设置 $_REQUEST 变量,但它似乎不起作用。

即我在 Controller 中有一个函数 search 来验证传递的表单输入,并且要么将您返回到有错误的上一页,要么将您移到下一页。但我希望如果您之前填写过此页面,此功能也可以使用,并且信息存储在 $_SESSION 变量中。

function search () {
$this->load->library("form_validation");
$this->form_validation->set_rules("flightID", "Flight Time", "required|callback_validFlightID");
$this->form_validation->set_rules("time", "Flight Time", "required|callback_validFlightTime");

$this->setRequest(array("flightID", "time"));

// adding session check allows for inter-view navigation
if ($this->form_validation->run()) {

// some application logic here

$this->load->view("seats", $data);
} else {
$this->logger->log($_REQUEST, "request");
// redirect back to index
$this->index();
}
}
function setRequest () {
// make sure none of the parameters are set in the request
foreach ($vars as $k) {
if (isset($_REQUEST[$k])) {
return;
}
}

foreach ($vars as $k) {
if (isset($_SESSION[$k])) {
$_REQUEST[$k] = $_SESSION[$k];
}
}

}

最佳答案

您可以使用以下 codeigniter 函数将表单发布信息存储在 session 中

$formdata = array(
'flightID' => $this->input->post('flightID'),
'time' => $this->input->post('time')
);
$this->session->set_userdata($formdata);

并且可以通过以下方式检索信息

$this->session->userdata('flightID')
$this->session->userdata('time')

关于php - 使用 session 变量的 CodeIgniter 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17813936/

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