2 回答
TA贡献1868条经验 获得超4个赞
如果您的表单以相同的方法发布数据,那么最好的方法是;将值保留在方法本身中,并在表单提交后使用。
public function edit() {
$id = 12;
if ($this->form_validation->run()) {
$dataComm = array(
'id' => $id
'name' => $this->input->post('name')
);
$result_comm = $this->Common_model->insert_data('cw_franchise_commission', $dataComm);
}
$this->data['title'] = "Edit User";
$this->load->view('edit', $this->data);
}
如果您的表单操作是另一种方法,那么您可以对值进行编码并在表单提交后对其进行解码。
编码
bin2hex(base64_encode($id))
解码
base64_decode(hex2bin($this->input->post('id')));
还有一件事,如果你使用隐藏输入,那么你应该把它命名为一些令人困惑的东西。否则,任何人都可以理解该领域的目的。
TA贡献1827条经验 获得超4个赞
没有这样的方法,但您可以使用以下方式将其保持为编码格式
base64_encode()
<input type="hidden" name="id" value="<php echo base64_encode('1231231231'.$id); ?>">
“1231231231”只是为了额外的安全性,它将预先带有 id
在控制器中剪切“1231231231”以获取 id
function abc() {
if (isset($_POST['id']) && !empty($_POST['id'])) {
$id = substr(base64_decode($_GET['id']), 10); // to remive extra string
if (!empty($id)) {
// you get id here
} else {
//if someone attempt to tamper with the id then it will retrive blank
}
} else {
//redirect or show error
}
}
- 2 回答
- 0 关注
- 132 浏览
添加回答
举报