Codeigniter注册登录代码示例
本示例Codeigniter注册登录代码源自一个codeigniter的项目,现分享下~
由于使用了ActiveRecord类,一般数据库操作只有两层,即是C和V
controllers/login.php文件:
<?php classLoginextendsCI_Controller{ private$pass=''; publicfunction__construct(){ parent::__construct(); $this->load->helper(array( 'form', 'url' )); $this->load->library('session'); } publicfunctionindex(){ $this->load->view('login'); } publicfunctionformsubmit(){ $this->load->library('form_validation'); $this->form_validation->set_rules('username','Username','required'); $this->form_validation->set_rules('password','Password','required'); if($this->form_validation->run()==FALSE){ $this->load->view('login'); }else{ if(isset($_POST['submit'])&&!empty($_POST['submit'])){ $data=array( 'user'=>$_POST['username'], 'pass'=>md5($_POST['password']) ); $newdata=array( 'username' => $data['user'], 'userip' =>$_SERVER['REMOTE_ADDR'], 'luptime' =>time() ); if($_POST['submit']=='login'){ $query=$this->db->get_where('uc_user',array( 'user'=>$data['user'] ),1,0); foreach($query->result()as$row){ $pass=$row->pass; } if($pass==$data['pass']){ $this->session->set_userdata($newdata); $this->load->view('usercenter',$data); } }elseif($_POST['submit']=='register'){ $this->session->set_userdata($newdata); $this->db->insert('uc_user',$data); $this->load->view('usercenter',$data); }else{ $this->session->sess_destroy(); $this->load->view('login'); } } } } }
views/login.php文件:
<html> <?phpechovalidation_errors();?> <?phpechoform_open('login/formsubmit');?> <table> <tr> <td>用户名</td> <td><inputtype="text"name="username"></td> </tr> <tr> <td>密码</td> <td><inputtype="password"name="password"></td> </tr> <tr> <td> <inputtype="submit"name="submit"value="login"> </td> <td> <inputtype="submit"name="submit"value="register"> </td> </tr> </table> </form> </html>
sql语句:
uc_user:
CREATETABLE`uc_user`( `id`int(11)unsignedzerofillNOTNULLAUTO_INCREMENT, `user`varchar(20)NOTNULL, `pass`char(32)NOTNULL, `role`enum('root','normal')NOTNULLDEFAULT'root', `del`decimal(1,0)NOTNULLDEFAULT'0', PRIMARYKEY(`id`) )ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=latin1