我正在CodeIgniter中开发一个新的应用程序。我已经在CI中开发了一些应用程序。在我之前的所有应用程序中,我曾经处理过类似下面的表单:
我的控制器:My_controller.php
class My_controller extends CI_Controller {
public function __construct()
{
parent::__construct();
$this->load->model('my_model');
}
public function sign_up()
{
$this->load->view('sign_up');
}
public function do_sign_up()
{
$this->form_validation->set_rules('');
$this->form_validation->set_rules('');
if($this->form_validation->run() == false)
{
$this->load->view('sign_up');
}
else
{
$this->my_model->insert_user();
$data['message'] = "Signup Successful";
$this->load->view('sign_up', $data);
}
}
我的观点:sign_up.php
<html>
<head></head>
<body>
<?php echo form_open("my_controller/do_sign_up"); ?>
form elements comes here.....
...............................
<?php echo form_close(); ?>
</body>
</html>
我怀疑是2种方法sign_up()&amp;控制器中需要do_sign_up()来处理一个sign_up表单。如果我编写这样的代码来处理每个表单,那么控制器中的方法数量将会增加。这是对的吗?或者还有其他方法吗?有人可以帮我吗?提前谢谢。
答案 0 :(得分:0)
你一定可以使用一个功能。像下面的东西。
public function sign_up()
{
if ($this->input->post()) {
$this->form_validation->set_rules('');
$this->form_validation->set_rules('');
if($this->form_validation->run() == false)
{
$this->load->view('sign_up');
}
else
{
$this->my_model->insert_user();
$data['message'] = "Signup Successful";
$this->load->view('sign_up', $data);
}
}else{
$this->load->view('sign_up');
}
}
试一试。
答案 1 :(得分:0)
你也可以这样设置
public function registre()
{
$this->form_validation->set_rules('email','EMAIL','trim|required|valid_email');
if($this->form_validation->run()==FALSE)
{
echo validation_errors();
$this->load->view('sign_up');//load page
or you can redirect('welcome/index');//also redirect
}
else{
$data=array(
'email'=>$this->input->post('email')
);
$this->welcome_model->registre($data);
echo "<div class='alert'>Inscription success</div>";
redirect('welcome/index');
}
}
我认为遵循文档是最佳做法https://www.codeigniter.com/userguide3/libraries/form_validation.html#form-validation-tutorial
答案 2 :(得分:0)
我认为在CodeIgniter中处理数据的最佳实践(对于所有其他框架也是如此)
1.将值赋值给控制器中的变量
2.从那些变量
初始化数组3.使用codeigniter表单验证来验证用户输入 (应该进行至少类型和长度验证)
4.如果需要,使用回调进行用户定义的验证
5.还要对返回的所有数据执行isset()和!empty()方法调用 表单函数(这将检查数据变量是否已设置或已设置 空值)
6.对于前端验证(客户端验证),我们可以使用html 或者jquery validation.Code可见性是主要的缺点 对于后端(服务器端)验证,大多数时候我们使用模块和 相应框架支持的库
7.Better编程实践具有前端和后端验证