CODEIGNITER 框架 注册登录代码示例

刚接手一个codeigniter的项目,写个示例代码,分享下~

 

由于使用了 Active Record 类,一般数据库操作只有两层,即是C和V

 

controllers/login.php

<?php
class Login extends CI_Controller {
	private $pass = '';
	public function __construct() {
		parent::__construct ();
		$this->load->helper ( array (
				'form',
				'url' 
		) );
		$this->load->library('session');
	}
	public function index() {
		$this->load->view ( 'login' );
	}
	public function formsubmit() {
		$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 );
					}
				} else if ($_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>

<?php echo validation_errors(); ?>
<?php echo form_open('login/formsubmit'); ?>
<table>
<tr>
<td>用户名</td>
<td><input type="text" name="username"></td>
</tr>
<tr>
<td>密码</td>
<td><input type="password" name="password"></td>
</tr>
<tr>
<td>
<input type="submit" name="submit" value="login">
</td>
<td>
<input type="submit" name="submit" value="register">
</td>
</tr>
</table>
</form>
</html>

 sql

 

uc_user  CREATE TABLE `uc_user` (                                   
           `id` int(11) unsigned zerofill NOT NULL AUTO_INCREMENT,  
           `user` varchar(20) NOT NULL,                             
           `pass` char(32) NOT NULL,                                
           `role` enum('root','normal') NOT NULL DEFAULT 'root',    
           `del` decimal(1,0) NOT NULL DEFAULT '0',                 
           PRIMARY KEY (`id`)                                       
         ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=latin1    

你可能感兴趣的:(PHP,框架)