Flora 发表于 2012-4-29 02:17:00

求助:登陆验证怎么做?

啊!!!我不会做登陆验证啊{:soso_e118:}就是比如要进入后台管理页面,你要登录吧?要怎样做啊?在C层写语句调用登陆界面,然后submit到C层的另一个方法,在那个方法里调用M层的函数查询数据库记录,再与post的值进行对比,匹配后传参数回C层的方法里,赋值给session,再跳转到管理界面?这样吗?我下了代码区里facebook的源码,可是看不懂{:soso_e109:}

slw_cn 发表于 2012-4-29 12:18:00

这个相当基础!POST到C层的同一个方法也可以 写个if语句就行了 你说的思路不是挺正确的吗?

Flora 发表于 2012-4-29 22:30:10

有没有什么示例代码参考啊?

Flora 发表于 2012-4-30 21:52:19

本帖最后由 Flora 于 2012-4-30 21:55 编辑

{:soso_e149:}我也觉得很基础,可就是做不出来……
贴代码出来请各路大侠指点一二:
C层:

<?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
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>
<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

jami918 发表于 2012-5-23 11:25:11

不错哦

jami918 发表于 2012-5-23 11:29:03

M层代码中SELECT * FROM students where stu_id="$name"
应该是SELECT * FROM students where name="$name"
对吗?

sdfeng250 发表于 2012-5-26 10:40:56

js js

niudongwei 发表于 2012-5-28 14:09:29

Ion Auth 2

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

终结者 发表于 2012-5-29 23:04:03

建议页面里的输入验证可以的话都用JS做。。。在提交之前用JS做检测。为什么要提交到代码里用程式判断呢。

jami918 发表于 2012-5-30 09:42:52

我刚刚学会,可以教教你qq406857617
页: [1] 2
查看完整版本: 求助:登陆验证怎么做?