gpt4 book ai didi

php - Codeigniter 表单验证总是返回 false

转载 作者:行者123 更新时间:2023-12-04 18:13:05 26 4
gpt4 key购买 nike

我在这个上花了很多时间,我想我已经对代码视而不见了。表单验证在运行时总是返回 FALSE,我不知道原因。

new_map() 函数首先显示表单,在提交表单时(当然,在 map_name 字段中设置值),表单验证运行返回 false 并且表单被重置,但是没有显示错误。我错过了什么??

Controller :

public function new_map()
{
$data['extra_assets']['js'][] = 'app/admin/maps.js';

$data['title'] = 'Add Map';

$this->form_validation->set_rules('map_name', 'Map name', 'required');

if ($this->form_validation->run() == FALSE)
{
$this->load_admin_view('admin/ae_map', $data);
}
else
{
$this->load->model('maps_model');
echo 'inside true';exit;
// Upload map
if ($this->maps_model->upload_map())
{
redirect(site_url('admin/maps'));
}
}
}

模型:
public function upload_map()
{
$config['upload_path'] = root_path() . 'space/maps/';
$config['allowed_types'] = 'gif|jpg|png';
$this->load->library('upload', $config);

$map_name = $this->input->post('map_name');

if ( ! $this->upload->do_upload('map_file'))
{
$error = array('error' => $this->upload->display_errors());

echo $this->upload->display_errors();exit;
return FALSE;
}
else
{
$data = array('upload_data' => $this->upload->data());

// Insert map into database
$options = array(
'm_file' => $data['upload_data']['file_name'],
'm_name' => $map_name
);
$this->insert_map($options);

// Create a thumbnail of this map
$this->generate_map_thumb($data['upload_data']['file_name']);
}

return TRUE;
}

看法:
<div class="modalContent" style="width: 300px; height: 250px;">
<h1><?php echo $title; ?></h1>

<?php echo validation_errors(); ?>

<div id="MAP_FORM" class="formListing">
<?php echo form_open_multipart('admin/new_map'); ?>

<ul>
<li>
<div><label>File: </label></div>
<div><span><input type="file" id="MAP_FILE" name="map_file" /></span></div>
</li>
<li>
<div><label>Name: </label></div>
<div><span><input type="text" id="MAP_NAME" name="map_name" value="" /></span></div>
</li>
</ul>

<br />
<input type="submit" value="Submit" id="SUBMIT_MAP" name="submit_map" />

<?php echo form_close(); ?>
</div>

最佳答案

如果我的回答不是很有帮助,我很抱歉,但我还不允许添加评论。

Controller 、模型和库之间的相互作用似乎是颠倒的。请记住,正如 Aniket 所说,所有表单验证都应该在 Controller 中进行。您所有的数据库交互都应该在模型中进行。

IF 语句失败的原因是它没有完成上传,并且它没有这样做,因为您没有告诉受控者甚至尝试上传。

尝试从这个角度重新设计你的 Controller 。此外,在运行表单验证时,不应定义 == FALSE。有时它会产生问题。只需使用 if (!$this->form_validation->run()) .

关于php - Codeigniter 表单验证总是返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12235255/

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