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

[已解决] 有没有高手统一的制定一下CI session的使用方法啊?

[复制链接]
发表于 2012-7-1 06:52:40 | 显示全部楼层 |阅读模式
大家好,刚接触CI,参考手册打算弄个 用户登录验证的测试,但是总是不知道怎样用session,也看过论坛的帖子,但是还是不行.
PHP复制代码
 
 
 
test_model.php
    <?php
    class Test_model extends CI_Model {
          public function __construct()
          {
            $this->load->database();
            /*
                       里面有个表users
            字段    userid     username     userpwd
            内容        1     testname     testpwd
            */

          }      
        public function get_user()
        {        
            $query = $this->db->get('users');
            return $query->result_array();          
        }
    }
 
 
 
tests.php
    <?php
    class Tests extends CI_Controller {
        public function __construct()
         {
            parent::__construct();
        //    $this->load->library('session');
            $this->load->model('test_model');
        //    $this->load->library('encrypt');        
          }
        public function testlogin()
         {
            $data['title'] = 'member center';
            $this->load->view('memberdir/testlogin',$data);    
         }
        public function testlogincheck()
         {
            //$this->load->library('session');
            $data['member'] = $this->test_model->get_user();    
            $data['title'] = 'member center';
            $this->load->view('memberdir/testlogincheck',$data);    
         }
    }
 
 
testlogin.php
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title><?php echo $title ?> - test</title>
        </head>
        <body>
            <form name="form" method="post" action="http://<?php  echo $_SERVER['SERVER_NAME']  ?>/index.php/tests/testlogincheck">
                帐号:<input type="text" name="uname" /> <br> <br /><br />
                密码:<input type="password" name="pword" /> <br>
                <input type="submit" name="button" value="登入" />  
            </form>
        </body>
        </html>
 
 
 
 
 
testlogincheck.php
    <?php
    $uname = $_POST['uname'];
    $pword = $_POST['pword'];
    ?>
    <?php foreach ($member as $member_item): ?>
    <?php
    if($uname != null && $pword != null && $member_item['username'] == $uname && $member_item['userpwd'] == $pword)
    {
            //将帐号写入session,方便验证使用者身份
            //$_SESSION['username'] = $uname;    
            //$newdata = array(
            //            'status' => 'OK',
           //             );
            //$this->session->set_userdata($newdata);            
            //session_start();
    // 注册登陆成功的 admin 变量,并赋值 true
    //$_SESSION["admin"] = true;
        //    $this->session->set_userdata('theusername', $uname);
            echo '登入成功!';        
            echo '<meta http-equiv="refresh" content="2;url=testloginedindex">';
    }
    else
    {
            echo '登入失败!';            
            echo '<meta http-equiv="refresh" content="2;url=testlogin" >';
    }
    ?>
    <?php endforeach ?>
 
 
 
 
 
testloginedindex.php
    <?php
     
    // 防止全局变量造成安全隐患
    //$admin = false;
    // 启动会话,这步必不可少
    //session_start();
    // 判断是否登陆
    //if (isset($_SESSION["admin"]) && $_SESSION["admin"] === true)
    //{
            echo "您好,你已经登录";
    ?>
 
    <?php
    //    }
    //    else
            echo "你还没有登录";
    ?>
 
 
 
 
 
 
复制代码


 楼主| 发表于 2012-7-1 07:01:32 | 显示全部楼层
PHP复制代码
 
[b]A PHP Error was encountered[/b]Severity: Warning
Message:  session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at E:\AppServ\www\application\controllers\tests.php:1)
Filename: tests/testloginedindex.php.php
Line Number: 14
 
[b]A PHP Error was encountered[/b]Severity: Warning
Message:  session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at E:\AppServ\www\application\controllers\tests.php:1)
Filename: tests/testloginedindex.php.php
Line Number: 14
 
你还没有登录
 
复制代码

 楼主| 发表于 2012-7-1 08:17:40 | 显示全部楼层
HTML复制代码
A PHP Error was encounteredSeverity: Warning
Message:  Cannot modify header information - headers already sent by (output started at E:\AppServ\www\application\controllers\tests.php:1)
Filename: libraries/Session.php
Line Number: 672
 
 
复制代码


如果按照手册上面内容写的话,就任何页面都出现这个错误.是我配置的问题吗?还是什么问题呢?


发表于 2012-7-1 11:39:29 | 显示全部楼层
你这个是BOM问题,就是说你写代码的编辑器不行~
看手册就可以用好session的~
发表于 2012-7-1 13:58:26 | 显示全部楼层
另存为无BOM的utf-8格式。
 楼主| 发表于 2012-7-2 05:34:23 | 显示全部楼层
我现在也没抽出时间按照楼上说的进行测试.
我直接又重新实现了一遍.
用的notepad++.我记得一直都是选择的 utf-8 无bom那个选项啊.
好像是.
重写了一遍.session可以了.
同时也对CI更清楚了一点.

本版积分规则