Zend Framework之Zend_Acl

来源:互联网 发布:淘宝卖茶叶要怎么办理 编辑:程序博客网 时间:2024/06/07 10:58

Zend_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'));//验证码
        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;
                                echo "成功登录!<div><font color='red'>返回</font></div>";
                                exit;
                        }
                }else{
                            echo "登录失败:"."$username - $password";exit;
                }
        }


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

0 0
原创粉丝点击