2014-01-31 4 views
0

Установка атрибута «метод» формы исправил это для меня, все отлично подает в базу данных, теперь у меня есть аналогичная проблема с моими учетными данными, но, возможно, у них одинаковые как эта проблема, поскольку я забыл о методе в первую очередь, спасибо вам всем очень.CodeIgniter не отправляет значения формы в базу данных

У меня проблема при попытке узнать принципы 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> 

Что представляет в (пользователь /) 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; 
    } 

I считаю У меня есть правильная таблица, и я следую принцип 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

Вы используете форму представления Ajax? Попробуйте без функции 'md5()' и проверьте значение пароля. Это также значение 0 для пароля? –

+0

вы проверили в своей консоли, если вы действительно отправляете форму. Откройте консоль и проверьте ее. – Ricbermo

+0

Добавьте метод = "post" к элементу формы, а затем print_r ($ data) перед вставкой. Полезный фрагмент для отладки делает представление test.php и помещает этот код внутрь:

_ci_cached_vars); ?>
. Затем отправляет ваши данные в это представление, и вы увидите все vars – gskema

ответ

1

Я предлагаю вам изменить свой открытый тег формы, чтобы явно вызвать контроллер, и вам нужно включить атрибут method="post", чтобы получить форму для публикации. Например.

<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); 
1

var_dump на вашем почтовом переменных, вы не получаете никаких почтовых переменные и единственную причину, почему вы думаете, что вы получаете пароль, потому что вы работаете md5 на пустой строке.

Смежные вопросы