分享

$_SESSION['verify']取不到值,求解? - ThinkPHP框架

 yliu277 2015-11-08
我原先调试的时候,发现报错说是验证码错误,还以为是我表单的验证码没弄好呢,结果我输出了一下$_SESSION['verify']发现,这货是空的,居然是空的,于是我打印了整个$_SESSION,结果还是空的,我就郁闷了,我在本地服务器环境上运行的那个yuanblog(tp论坛上下载学习的)明明都是正常的啊,$_SESSION['verify']也能获取成功,而且我的登录验证代码也是基本上和他的一样啊,我就郁闷了。后来我直接在入口文件index.php中写了$_SESSION['ni']='sss';结果更是令我吃惊,打印$_SESSION还是为空,知道我在index.php顶部加了一句session_start();才能显示出来,但是$_SESSION['verify']还是没有值,依旧为空,我实在没有办法了,求解
以下是我的public类代码:<?php
class PublicAction extends Action {
    // 验证码图片
    public function verify(){
        import('ORG.Util.Image');
        Image::buildImageVerify($length=4, $mode=5, $type='png', $width=48, $height=24, $verifyName='verify');
    }

    
    // 用户登录验证
    public function check() {
        $User = D('User');
        if(!$User->create()) {
            $this->error($User->getError());
        }else if($_SESSION['verify']!= md5($_POST['verify'])) {
            $this->error('验证码错误!');
        }
        $data = $User->create();
        $map['password']  = md5($data['pass_word']);
        $map['name']  = $data['user_name'];
        $pass = $User->where($map)->select();
        if($pass) {
            session('uid',$pass[0]['id']);
            $this->success('登陆成功!');
            $this->redirect(GROUP_NAME.'/Index/index');
        }else {
            $this->error('此账号不存在!');
        }
    }
    
    
    // 用户登陆
    public function login(){
        $this->display();
    }
    
    //用户登出
    public function logout() {
        session_destroy();
        session_unset();
        $this->redirect(GROUP_NAME.'/Public/login');
    }
}
user的model类代码:<?php
class UserModel extends Model {
    protected $_validate = array(
        array('user_name','require','用户名必须填写!'),
        array('pass_word','require','密码必须填写!'),
        array('verify','require','验证码必须填写!'),
    );
    
    protected $_auto = array(
        array('last_login_time','time',3,'function'),
        array('last_login_ip','get_client_ip',3,'function'),
    );
}
登录表单代码(表单的一部分):<script type='text/javascript'>
    function verifyFresh(){
        document.getElementById('verify').src='{:U(GROUP_NAME.'/Public/verify')}/' Math.random();
    }
</script>
</head>
<body id='login'>
<div id='login-wrapper' class='png_bg'>
  <div id='login-top'>
    <h1>Simpla Admin</h1>
    <!-- Logo (221px width) -->
    <a href='#'><img id='logo' src='!-PUBLIC-!/img/logo.png' alt='Simpla Admin logo' /></a> </div>
  <!-- End #logn-top -->
  <div id='login-content'>
    <form action='{:U(GROUP_NAME.'/Public/check')}' method='post'>
      <p>
        <label>用  户  名</label>
        <input name='user_name' class='text-input' type='text' />
      </p>
      <div class='clear'></div>
      <p>
        <label>密        码</label>
        <input name='pass_word' class='text-input' type='password' />
      </p>
      <div class='clear'></div>
      <p>
        <label>验  证  码</label>
        <input name='verify' class='text-input' type='text' />
      </p>
      <div class='clear'></div>
      <p>
        <label>验证码图片</label>    
        <img style='position:relative;top:-6px;' src='{:U(GROUP_NAME.'/Public/verify')}' id='verify' title='点击验证码可刷新验证码!' onclick='verifyFresh()' />
        <span id='remember-password'><input style='margin:0;' type='checkbox' />记住我</span> 
      </p>
      <div class='clear'></div>
      <p>
        <input class='button' type='submit' value='登陆' />
      </p>
    </form>

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多