我正在使用CodeIgniter,我有一个带有复选框的表单,允许用户检查并删除他们上传的照片.
在我的控制器中,我if(isset($checked) == 1)用来检查用户是否要删除照片.
$photo_to_table将设置为空并传递给$this->tank_auth->update_user()执行数据库更新,并将照片字段设置为在表中为空.否则,它将保持相同的照片.
但是在我的代码中,无论我是否检查,当我点击UPDATE按钮时,它会不断删除照片,我想知道它为什么会发生?
有人可以通过我的代码并给出建议吗?
控制器:
$user_id = $this->session->userdata('user_id');
$profile = $this->users->get_profile_by_id($user_id);
if(!empty($_FILES['photo']['name']))
{
//image upload process
}
else
{
$checked = $this->input->post('remove');
if(isset($checked) == 1)
{
$photo_to_table = '';
// here will do remove process to delete file in directory
}
else
{
$photo_to_table = $profile->photo;
}
}
if($this->form_validation->run()) { // validation ok
if(!is_null($data = $this->tank_auth->update_user(
$this->form_validation->set_value('name'),
$this->form_validation->set_value('country'),
$this->form_validation->set_value('website'),
$photo_to_table
)))
{
// success
$this->session->set_flashdata('msg', 'Profile has been updated');
redirect(current_url()); …Run Code Online (Sandbox Code Playgroud) 我正在努力实现一些我无法理解的东西.问题是,当记录特定用户时,我会在会话中存储用户并记录他.
在告诉我之前,我知道这不是最佳做法,但此页面的目的仅限于内部,并且不可能被黑客攻击,因为您只能在内部访问它.
无论如何,重点是表中有一些可编辑的字段,只能由管理员编辑,但只能由其他人看到.
为了实现可编辑的表,我使用了datatables库以及一些ajax和JQuery.
当记录的用户不是管理员而不是以下时,我想不出一种限制编辑的方法:
var logged = <?php echo $_SESSION['logged_user'];?>;
if (logged=='admin') {
// action here
}
Run Code Online (Sandbox Code Playgroud)
你知道更好的方法还是更容易理解?非常感谢你!