用户
 找回密码
 入住 CI 中国社区
搜索
查看: 5724|回复: 13
收起左侧

[已解决] 求助:登陆验证怎么做?

[复制链接]
发表于 2012-4-29 02:17:00 | 显示全部楼层 |阅读模式
啊!!!我不会做登陆验证啊{:soso_e118:}就是比如要进入后台管理页面,你要登录吧?要怎样做啊?在C层写语句调用登陆界面,然后submit到C层的另一个方法,在那个方法里调用M层的函数查询数据库记录,再与post的值进行对比,匹配后传参数回C层的方法里,赋值给session,再跳转到管理界面?这样吗?我下了代码区里facebook的源码,可是看不懂{:soso_e109:}
发表于 2012-4-29 12:18:00 | 显示全部楼层
这个相当基础!POST到C层的同一个方法也可以 写个if语句就行了 你说的思路不是挺正确的吗?
 楼主| 发表于 2012-4-29 22:30:10 | 显示全部楼层
有没有什么示例代码参考啊?
 楼主| 发表于 2012-4-30 21:52:19 | 显示全部楼层
本帖最后由 Flora 于 2012-4-30 21:55 编辑

{:soso_e149:}我也觉得很基础,可就是做不出来……
贴代码出来请各路大侠指点一二:
C层:
PHP复制代码
 
<?php session_start();
class Show_admin extends CI_Controller {
 function __construct()
 {
  parent::__construct();
   $this->load->helper('url');
 }
 public function index()
 {
$this->load->view('admin/admin_logic');
}
 
 public function login(){  
   if($_POST['name']==""||$_POST['password']==""){
     echo "<script>alert('您还没有填写用户名或密码!');history.go(-1);</script>";
   }else{
    $this->load->model('admin/db_function');
    $query = $this->db_function->check_admin($_POST['name'],$_POST['password']);
     foreach ( $query as $row)
     {
         if($row['stu_id']==$_POST['name']&&$row['password']==$_POST['password']){
   
//echo "this is ".$query;
           $_SESSION['userid']=$_POST['name'];
           $this->load->view('admin/admin_index');
}
    else{
     echo "<script>alert('用户名或密码错误!');history.go(-1);</script>";
    }
  }//end of foreach
    }//end of login
}
?>
复制代码


M层:
PHP复制代码
 
<?php
class Db_function extends CI_Model {
    function __construct()
     {
         parent::__construct();
         $this->load->database();
          mysql_query("SET NAMES GBK"); //防止中文乱码
         $this->load->helper('url');
     }
 function check_admin($name,$password)
 { $query = $this->db->query('SELECT * FROM students where stu_id="$name"');
 return $query->result_array();
  }
}
?>
 
复制代码

V层:admin_logic.php
HTML复制代码
 
<html>
<body>
<?php
$this->load->helper('form');
echo form_open('admin/show_admin/login');
?>
 
<table border="1">
    <tr>
        <td>用户名</td>
        <td><?php $name = array('name' => 'name');
  echo form_input($name);   ?> </td>
    </tr>
    <tr>
        <td>密码</td>
        <td><?php  $pwd = array('name' => 'password');
  echo form_password($pwd);?></td>
    </tr>    <tr>
        <td> </td>
        <td><?php echo form_submit('submit','确认');  
?></td>
    </tr>
</table>
<?php
echo form_close();?>
</body>
</html>
 
复制代码

数据库
students 表
id,stu_id,name,password

发表于 2012-5-23 11:25:11 | 显示全部楼层
不错哦
发表于 2012-5-23 11:29:03 | 显示全部楼层
M层代码中SELECT * FROM students where stu_id="$name"
应该是SELECT * FROM students where name="$name"
对吗?
发表于 2012-5-26 10:40:56 | 显示全部楼层
js js
发表于 2012-5-28 14:09:29 | 显示全部楼层
Ion Auth 2

http://github.com/benedmunds/CodeIgniter-Ion-Auth

发表于 2012-5-29 23:04:03 | 显示全部楼层
建议页面里的输入验证可以的话都用JS做。。。在提交之前用JS做检测。为什么要提交到代码里用程式判断呢。
发表于 2012-5-30 09:42:52 | 显示全部楼层
我刚刚学会,可以教教你qq406857617

本版积分规则