zend framework 之 登录 退出 session 会话

在入口文件中加上Zend_Session::start();//启动SESSION
UserController.php文件:
//用户登录
function loginAction()
{
//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'));
//$validcode = $filter->filter($this->_request->getPost('validcode'));//验证码
//echo $validcode; exit;
if( !empty($username) )
{
$db = Zend_Registry::get('dbAdapter');
$authAdapter = new Zend_Auth_Adapter_DbTable($db);
$authAdapter->setTableName('m_user')//数据库表名
// 数据库表的列的名称,用来表示身份。身份列必须包含唯一的值,例如用户名或者e-mail地址。
->setIdentityColumn('username')
//数据库表的列的名称,用来表示证书。在一个简单的身份和密码认证scheme下,证书的值对应为密码
->setCredentialColumn('pwd')
->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
echo '已经安全退出!';
}

//在任何地方输出
$user = new Zend_Session_Namespace('user');
if( isset( $user->name ) )
{
echo '会员'.$user->name;
}else{
echo '游客';
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值