表格
<?php echo validation_errors(); ?>
<?php $attributes = array('class' => 'navbar-form pull-right');
echo form_open('login/checkLogin', $attributes); ?>
<input class="span2" type="text" placeholder="Username" name="username">
<input class="span2" type="password" placeholder="Password" name="password">
<button type="submit" class="btn">Sign in</button>
</form>
Contorller
<?php
class Login extends CI_Controller{
public function index(){
$this->load->view('templates/menu');
}
public function checkLogin(){
$this->form_validation->set_rules('username', 'Username', 'required|callback_verifyUser');
$this->form_validation->set_rules('password', 'Password', 'required|callback_verifyPassword');
if($this->form_validation->run() == false){
$this->load->view('pages/error');
}else{
}
}
}
?>
模型
<?php
class Login_model extends CI_Model{
public function login($name, $pass){
$this->db->select('name, pass');
$this->db->from('members');
$this->db->where('name', $name);
$this->db->where('pass', $pass);
$query = $this->db->get();
if($query->num_rows() == 1){
return true;
}else{
return false;
}
}
}
?>
结构
应用
的.htaccess
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !f
RewriteCond %{REQUEST_FILENAME} !d
RewriteRule .* index.php/$0 [PT,L]
当我按提交返回404时,我的表单位于menu.php中 如果需要更多信息,请问我。
答案 0 :(得分:0)
检查 .htaccess &amp; php.ini 文件。查看 mod_rewrite ..确保这些内容配置正确,并且您不会意外地使用扩展程序。
也可以尝试代替
if($this->form_validation->run() == false){
$this->load->view('pages/error');
}
试
if(!$this->form_validation->run()){
$this->load->view('pages/error');
}
答案 1 :(得分:0)
首先确保在某些视图中使用mod_rewrite
启用了phpinfo();
,然后使用此功能:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
答案 2 :(得分:0)
这是我的解决方案:
<强> routes.php文件强>
$route['templates/menu'] = 'login/checkLogin';
<强> menu.php 强>
echo form_open('templates/menu', $attributes);