^o莫名o^ 发表于 2012-7-1 06:52:40

有没有高手统一的制定一下CI session的使用方法啊?

大家好,刚接触CI,参考手册打算弄个 用户登录验证的测试,但是总是不知道怎样用session,也看过论坛的帖子,但是还是不行.



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://<?phpecho $_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 "你还没有登录";
    ?>







^o莫名o^ 发表于 2012-7-1 07:01:32


A PHP Error was encounteredSeverity: Warning
Message: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

A PHP Error was encounteredSeverity: Warning
Message: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

你还没有登录

^o莫名o^ 发表于 2012-7-1 08:17:40

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



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


Hex 发表于 2012-7-1 11:39:29

你这个是BOM问题,就是说你写代码的编辑器不行~
看手册就可以用好session的~

yunnysunny 发表于 2012-7-1 13:58:26

另存为无BOM的utf-8格式。

^o莫名o^ 发表于 2012-7-2 05:34:23

我现在也没抽出时间按照楼上说的进行测试.
我直接又重新实现了一遍.
用的notepad++.我记得一直都是选择的 utf-8 无bom那个选项啊.
好像是.
重写了一遍.session可以了.
同时也对CI更清楚了一点.
:time:
页: [1]
查看完整版本: 有没有高手统一的制定一下CI session的使用方法啊?