沙琪玛 发表于 2012-3-7 09:50:05

取不到session的值

这是我的控制器:
class Login extends CI_Controller {

    function __construct() {
      parent::__construct();
    }

    function index() {
      $DBBookshop = $this->load->database('bookshop', TRUE);
      session_start();
      $this->load->library('session');
      $admin = $this->session->userdata('admin');
       $password = $this->session->userdata('password');
      $this->load->helper('url');
我在libraries里面也用了版主写的原生session。放到里面了。
这是前台的form表单<form name="admininfo" method="post" action="<?php echo site_url().'/chkadmin/index' ?>" >
问题是我跳转到chkadmin页面的时候。取不到控制器里的那个已经输入的admin(用户名)和password(密码)。到底肿么回事啊?

netputer 发表于 2012-3-7 15:48:34

1、就算用的是 Hex 的原生 Session 库, Session 库的加载只需要
$this->load->library("session");
而不需要
session_start();

2、表单传值是通过 POST 方式,和 Session 一点儿关系都没有。把
$admin = $this->session->userdata('admin');
改为
$admin = $this->input->post("admin");
应该就可以了~

沙琪玛 发表于 2012-3-7 16:55:42

谢谢。我要还补充点的就是。在登陆的控制器中。要把session传的值放到一个数组中,也就是 $newdata = array(
                   'admin'=> $admin,
               );
            $this->session->set_userdata($newdata);像这种。这样的话。才能在其他的页面取到$admin的 值

hackjan 发表于 2012-3-7 23:12:50

兄弟,今天我看了你的代码,你都没有设置,怎么可能获取到session啊!!!明天你得给我买烟!!!

沙琪玛 发表于 2012-3-8 09:16:34

好的。没问题啊。我请你抽烟,咱哥俩好点小酒乐呵乐呵{:soso_e113:}

lynn.wang 发表于 2012-3-8 11:31:57

session_start(); 去掉
$this->load->library('session'); 会自动完成对应的 session
剩下的只有你要用的操作了
页: [1]
查看完整版本: 取不到session的值