Codeigniter注册登录代码示例
程序员文章站
2023-12-10 23:04:34
本示例codeigniter注册登录代码源自一个codeigniter的项目,现分享下~
由于使用了 active record 类,一般数据库操作只有两层,即是c和v...
本示例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' );
}
}
}
}
}
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>
<?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
`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