Posted in PHP onJune 12, 2014
本示例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
Codeigniter注册登录代码示例
- Author -
shichen2014声明:登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述。
Reply on: @reply_date@
@reply_contents@