现在的位置: 首页 > 综合 > 正文

zend framework 之Zend_Session 登录 退出 session 会话

2018年01月30日 ⁄ 综合 ⁄ 共 2232字 ⁄ 字号 评论关闭

在入口文件index.php中加上

// 启动SESSION
require_once 'Zend/Session.php';
Zend_Session::start();

UserController.php文件:

/**      * 用户登录      */  function loginAction() {   $user = new BaseUser();   //auth实现用户登录   if(strtolower($_SERVER['REQUEST_METHOD'])=='post'){    Zend_Loader::loadClass('Zend_Filter_StripTags');    $filter=new Zend_Filter_StripTags();       //表单的post值       //$username = $filter->filter($this->_request->getPost('username'));       //$password = $filter->filter($this->_request->getPost('pwd'));                   $username = $this->getRequest()->getParam("UserName");             $password = $this->getRequest()->getParam("PassWord");    //$validcode = $filter->filter($this->_request->getPost('validcode'));//验证码    if( !empty($username) ){     $db = Zend_Registry::get('db');     $authAdapter = new Zend_Auth_Adapter_DbTable($db);     $authAdapter->setTableName('base_user')//数据库表名                // 数据库表的列的名称,用来表示身份。身份列必须包含唯一的值,例如用户名或者e-mail地址。                ->setIdentityColumn('username')                //数据库表的列的名称,用来表示证书。在一个简单的身份和密码认证scheme下,证书的值对应为密码                ->setCredentialColumn('passwordhash')                ->setIdentity($username)//认证的值                ->setCredential($password);

    $auth = Zend_Auth::getInstance();     $result = $auth->authenticate($authAdapter);// 执行认证查询,并保存结果     // 输出身份     //echo $result->getIdentity() . "/n/n";     // 输出结果行     //echo '<pre>';print_r($authAdapter->getResultRowObject());exit;

    if( $result->isValid()){//isValid() - 返回 true 当且仅当结果表示一个成功的认证尝试 {      $data = $authAdapter->getResultRowObject(null,'password');      //echo '<pre>';print_r($data);exit;      if( $auth->hasIdentity() ){//成功登录{       //auth之后写入session       $user = new Zend_Session_Namespace('user');       $user->name = $username;       $user->setExpirationSeconds(60);//命名空间 "user" 将在第一次访问后 60 秒过期       echo '<h3><font color=red> 登录成功!</font></h3>';                                    }     }else{      echo '<h3><font color=red> 登录失败,请重新登录!</font></h3>';     }    } else {      echo '<h3><font color=red>用户名不能为空,请输入用户名.</font></h3>';    }   }else{    echo '呵呵,对不起,你的操作是非法';   }  }       /**      * 用户退出      */  function loginoutAction() {   $user = new Zend_Session_Namespace('user');    $user->__unset();//销毁session     return;   }

//在任何地方输出

$user = new Zend_Session_Namespace('user');
if( isset( $user->name ) ){
	echo '会员'.$user->name;
}else{
	echo '游客';
} 

抱歉!评论已关闭.