设置“方法”的格式属性为我解决了这个问题,一切都提交到数据库很好,现在,我的验证凭据也有类似的问题,但也许它的根目录与这个问题因为我首先忘记了方法,非常感谢你们。
我在尝试学习CodeIgniter和一般MVC原则时遇到了问题。
我有一个注册表格视图
<div class="container">
<form class="form-horizontal" style="width:500px;" action="sign_up">
<fieldset>
<!-- Form Name -->
<legend>Sign Up</legend>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="username">Username</label>
<div class="controls">
<input id="username" name="username" placeholder="Username" class="input-xlarge" required="" type="text">
<p class="help-block">Your username</p>
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="email_address">Email</label>
<div class="controls">
<input id="email_address" name="email_address" placeholder="Email address " class="input-xlarge" required="" type="text">
<p class="help-block">Enter your email address</p>
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="first_name">First Name</label>
<div class="controls">
<input id="first_name" name="first_name" placeholder="First name" class="input-xlarge" required="" type="text">
<p class="help-block">Enter your first name</p>
</div>
</div>
<!-- Text input-->
<div class="control-group">
<label class="control-label" for="last_name">Last Name</label>
<div class="controls">
<input id="last_name" name="last_name" placeholder="Last name" class="input-xlarge" type="text">
<p class="help-block">help</p>
</div>
</div>
<!-- Password input-->
<div class="control-group">
<label class="control-label" for="password">Password Input</label>
<div class="controls">
<input id="password" name="password" placeholder="Password" class="input-xlarge" required="" type="password">
<p class="help-block">help</p>
</div>
</div>
<div class="control-group">
<label class="control-label" for="password">Password Confirmation</label>
<div class="controls">
<input id="password2" name="password2" placeholder="Password" class="input-xlarge" required="" type="password">
<p class="help-block">help</p>
</div>
</div>
<!-- Button -->
<div class="control-group">
<label class="control-label" for="singlebutton"></label>
<div class="controls">
<button class="btn btn-success" onclick="submit" >Sign Up</button>
</div>
</div>
</fieldset>
</form>
</div>
提交给(user /)sign_up
public function sign_up() {
$this->load->model('login_model');
if($query = $this->login_model->create_member()){
$data['main_content'] = 'user_login_view';
$this->load->view('template', $data);
}
}
传递给模型函数“create_member”
function create_member()
{
$newdata = array(
'user_name' => $this->input->post('username'),
'password' => md5($this->input->post('password')),
'email' => $this->input->post('email_address'),
'first_name' => $this->input->post('first_name'),
'last_name' => $this->input->post('last_name')
);
$insert = $this->db->insert('users', $newdata);
return $insert;
}
我相信我有正确的表设置,我遵循MVC原则。
id int(11)
user_name varchar(25)
password varchar(32)
email varchar(50)
first_name varchar(32)
last_name varchar(32)
我的问题是密码是唯一一个传递到数据库的值,其余只是提交0,任何建议或明显的错误指出?
ID user_name password email first_name last_name
20 0 d41d8cd98f00b204e9800998ecf8427e 0 0 0
谢谢
答案 0 :(得分:1)
你的帖子变量上的var_dump,你没有得到任何帖子变量,你认为你获得密码的唯一原因是你在一个空字符串上运行md5。
答案 1 :(得分:1)
我建议您更改表单打开标记以显式调用控制器,并且需要包含method="post"
属性才能使表单发布。 E.g。
<form class="form-horizontal" style="width:500px;" action="/user/sign_up" method="post">
如果您想使用CI的表单助手,可以使用以下内容:
$attributes = array('class' => 'form-horizontal', 'style' => 'width:500px;');
echo form_open('user/sign_up', $attributes);