刚接手一个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