codeigniter:数据未插入数据库
目前我对codeigniter是新手。我试图通过表单将用户数据插入CodeIgniter3中的数据库 用户验证不起作用。表单只需提交,无需任何验证。我想我的代码都写对了 我也试过一些类似的问题,但对我没有帮助 控制器codeigniter:数据未插入数据库,codeigniter,codeigniter-3,Codeigniter,Codeigniter 3,目前我对codeigniter是新手。我试图通过表单将用户数据插入CodeIgniter3中的数据库 用户验证不起作用。表单只需提交,无需任何验证。我想我的代码都写对了 我也试过一些类似的问题,但对我没有帮助 控制器 public function signupvalidation() { $this->load->library('form_validation'); if($this->form_validatio
public function signupvalidation()
{
$this->load->library('form_validation');
if($this->form_validation->run('uservalidationsignup'))
{
$post = $this->input->post('user');
$this->load->model('usermodel');
if($this->usermodel->usersignup($post['rollno'],$post['name'],$post['password']))
{
$this->session->set_flashdata('insertsuccess','User Registration Successfully');
return redirect('user/signupuser');
}
else
{
echo "error!!!!!!!!";
}
}
else
{
echo "form not submitted";
}
}
型号
class usermodel extends CI_Model
{
public function usersignup($roll,$name,$password)
{
$data = array(
'roll' => $roll,
'name' => $name,
'password' => $password
);
return $this->db->insert('user',$data);
}
}
查看
<div class="container mt-5 text-center">
<div class="row">
<div class="col-sm-12 col-lg-12 col-md-12">
<?php echo form_open('User/signupvalidation', array(
'class' => 'form-signin'
)); ?>
<div class="text-center mb-4">
<img class="mb-4" src="<?php echo base_url('assets/img/logo1.png'); ?>" alt="" width="100" height="100">
<h1 class="h3 mb-3 font-weight-normal"> Please Register here</h1>
</div>
<div class="form-label-group">
<?php echo form_input(['name'=>'roll','type'=> 'text','class'=>'form-control' ,'placeholder'=> 'Your University Roll-no','autofocus']); ?>
<label for="formGroupExampleInput">Your University Rollno</label>
</div>
<div class="form-label-group">
<?php echo form_input(['name'=>'name','type'=> 'text','class'=>'form-control' ,'placeholder'=> 'Your University Roll-no','autofocus']); ?>
<label for="formGroupExampleInput">Your Name</label>
</div>
<div class="form-label-group">
<?php echo form_input(['name'=>'password','type'=> 'password','class'=>'form-control' ,'placeholder'=> 'Your University Roll-no','autofocus']); ?>
<label for="inputPassword">Password</label>
</div>
<?php echo form_submit(['value'=>'Register','class'=>'btn btn-lg btn-primary btn-block fa-2x','type'=>'submit']) ?>
<p class="mt-5 mb-3 text-muted text-center">© 2017-2020</p>
</form>
</div>
</div>
</div>
“alt=”“width=“100”height=“100”>
请在这里登记
你的大学罗尔诺
你的名字
密码
©;2017-2020
错误
public function signupvalidation()
{
$this->load->library('form_validation');
if($this->form_validation->run('uservalidationsignup'))
{
$post = $this->input->post('user');
$this->load->model('usermodel');
if($this->usermodel->usersignup($post['rollno'],$post['name'],$post['password']))
{
$this->session->set_flashdata('insertsuccess','User Registration Successfully');
return redirect('user/signupuser');
}
else
{
echo "error!!!!!!!!";
}
}
else
{
echo "form not submitted";
}
}
它总是显示未提交的表单,这意味着它进入其他部分
为了调试,我使用了var\u dump($data)
它显示NULL
表示数据未通过表单。如何解决此错误。
谢谢您没有在控制器中正确使用表单验证,请检查以下代码:
还要检查我在if子句中所做的更改:
Set_rules tacks 4参数:
(1) 字段名称-您为表单字段指定的确切名称。
(2) 此字段的“人员”名称,将插入到错误中 消息。
(3) 此表单字段的验证规则。
(4) (可选)在为当前字段给定的任何规则上设置自定义错误消息。如果 未提供将使用默认值
public function signupvalidation()
{
$this->load->library('form_validation');
//we have to write rules for fields in the form ,which we want to validate
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('roll', 'Role', 'required');
$this->form_validation->set_rules('password', 'Password', 'required');
if($this->form_validation->run()) //changed here
{
$post = $this->input->post('user');
$this->load->model('usermodel');
if($this->usermodel-
>usersignup($post['rollno'],$post['name'],$post['password']))
{
$this->session->set_flashdata('insertsuccess','User Registration Successfully');
return redirect('user/signupuser');
}
else
{
echo "error!!!!!!!!";
}
}
else
{
echo "form not submitted";
}
}
为什么不按照?查看控制器代码与代码的区别。实际上,如果代码通过“表单未提交”部分,是因为表单验证未通过。这就是为什么没有插入数据。如果显示正在运行的验证,可能会有所帮助,因为
$this->form\u validation->run('uservalidationsignup');
没有太多说明。我建议将打印验证错误();
的“表单未提交”替换为“表单未提交”,这样您就可以确切地了解验证失败的原因