2012-02-15 2 views
0

나는 아래의 컨트롤러를 가지고 있고 나는 다음과 같은 일을 수행하려는 : 사용자 이름이 가지고가는 경우에 컨트롤러/양식

  • 오류보기 -> 현재 단지 로 제출을 특정 사용자를 통해서조차도 데이터베이스에 있습니다. 오류가 발생했을 경우 데이터

  • 채우기는 - 올바른

  • 메뉴 항목 아래로 선택한 드롭의 활성 상태를 유지하는 경우> 현재 가져온 데이터로 채 웁니다

보기 :

<h1><?php echo $companyName; echo nbs(1);?> - <?php echo $pageTitle; ?></h1> 



<?php 
if($success == TRUE) { 
echo '<section id = "validation">Page Updated</section>'; 
} 
?> 
    <p>Error: <?php echo validation_errors();?></p> 
    <div class="formContent"> 
     <form action="createUser" method="post"> 
      <fieldset class="control-group"> 
       <label for="userName">User Name:</label><input type="text" id="userName" name="userName" value="<?php echo set_value('userName'); ?>" placeholder="User Name"> 
       <label for="userPassword">User Password:</label><input type="password" id="userPassword" name="userPassword" value="<?php echo set_value('userPassword'); ?>" placeholder="User Password"> 
       <label for="userFirstName">First Name:</label><input type="text" id="userFirstName" name="userFirstName" value="<?php echo set_value('userFirstName'); ?>" placeholder="First Name"> 
       <label for="userLastName">Last Name:</label><input type="text" id="userLastName" name="userLastName" placeholder="Last Name"> 
       <label for="userEmail">E-Mail:</label> <input type="text" id="userEmail" name="userEmail" placeholder="Admin E-mail"> 
       <label for="userGroup"> User Group:</label> 
        <select name="userGroup" id="userGroup"> 
         <option value="select">Please Select</option> 
         <option value="admin">Admin</option> 
         <option value="user">User</option> 
        </select> 
       <label for="userActive"> User Active:</label> 
         <select name="userActive" id="userActive"> 
          <option value="select">Please Select</option> 
          <option value="yes">Yes</option> 
          <option value="no">No</option> 
         </select> 
       <div> 
        <button type="submit" class="btn-primary">Create</button> 
       </div> 
       </fieldset> 
     </form> 
    </div> 

컨트롤러 :

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

class createUser extends CI_Controller { 


    public function index() 
    { 
     //Form Validation prep making sure its all clean 

     $this->form_validation->set_rules('userName', 'User Name', 'trim|required|is_unique[users.userName]|xss_clean'); 
     $this->form_validation->set_rules('userPassword', 'User Password', 'trim|required|xss_clean|sha1'); 
     $this->form_validation->set_rules('userFirstName', 'First Name', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('userLastName', 'Last Name', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('userEmail', 'E-Mail', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('userGroup', 'User Group', 'trim|required|xss_clean'); 
     $this->form_validation->set_rules('userActive', 'User Active', 'trim|required|xss_clean'); 

     //If form validation fails load previous page with errors else do the job and insert data into db 

     if($this->form_validation->run() == FALSE) 
     { 
      $data['success'] = ""; 
     }else{ 
      $username = $this->input->post('userName'); 
      $password = $this->input->post('userPassword'); 
      $firstname = $this->input->post('userFirstName'); 
      $lastname = $this->input->post('userLastName'); 
      $email = $this->input->post('userEmail'); 
      $group = $this->input->post('userGroup'); 
      $active = $this->input->post('userActive'); 

      $passwordHash = $this->encrypt->sha1($password); // Lets encrypt the password why sha1? MD5 is for tossers 

      // If the data is correct follow through with db insert 

      if($this->users_model->createUser($username,$passwordHash,$firstname,$lastname,$email,$group,$active)) 
      { 
       $data['success'] = TRUE; 

      } 

     } 
     $data['companyName'] = $this->core_model->companyName(); 
     $data['pageTitle'] = "Create User"; 
     $this->load->view('admin/assets/header', $data); 
     $this->load->view('admin/createUser', $data); 
     $this->load->view('admin/assets/footer'); 
    } 
} 

/* End of file login.php */ 
/* Location: ./application/controllers/admin/createUser.php */ 

답변

1

내가 당신이라면,이 콜백 당신의 선택 드롭 다운에로 (http://codeigniter.com/user_guide/libraries/form_validation.html#callbacks)

 $this->form_validation->set_rules('userName', 'User Name', 'trim|required|xss_clean|callback__checkUsername'); 

을 사용은 SET_VALUE() 함수를

   <select name="userGroup" id="userGroup"> 
        <option value="select"<?=(set_value('userGroup')=='select')?' selected="selected"':''?>>Please Select</option> 
        <option value="admin"<?=(set_value('userGroup')=='admin')?' selected="selected"':''?>>Admin</option> 
        <option value="user"<?=(set_value('userGroup')=='user')?' selected="selected"':''?>>User</option> 
       </select> 

행운

+0

I을 사용하여 독특한 & 콜백 사이에 무엇이 최선인지 혼란스러워. http://stackoverflow.com/questions/9244844/not-outputting-form-error-messages –

0

나는 이름이 이미 가지고가는 경우에 검사와 관련하여 CodeIgniter의 에 대해 아무것도 몰라 나는 순전히 논리적 인 PHP는 점에서이에 갈거야, 난에 사용자 이름 필드에 DB 쿼리를 할 것이다 당신의 " 사용자 "표를보고 이름이 존재하는지 확인하십시오.

$this->form_validation->set_rules('userName', 'User Name', 'trim|required|is_unique[users.userName]|xss_clean'); 

내가 점화에 DB 테이블을 참조하기위한 표준을 잘 모릅니다,하지만 어쩌면 당신은 잘못 필드를 참조하는 :

난 당신이 이런 짓을했는지 참조하십시오. 또한 대소 문자를 구분하지 않는 한 대소 문자를 구분하지 않고 모든 문자를 소문자로 변경하여 대소 문자를 구분합니다.