实例介绍
【实例简介】
auth验证以及sqlite数据库基本操作
Zend/Auth/Adapter/DbTable.php以及Zend/Db/Adapter/Pdo/Sqlite.php示例
含有验证
【实例截图】
【核心代码】
代码片段一:
<?php
require_once 'Zend/Auth/Adapter/Digest.php'; //加载Zend_Auth基本接口
$filename="pass.txt"; //定义文件名
$realm1="realm"; //定义领域1
$username1="user"; //定义用户名1
$password1="password"; //定义密码1
/*创建一个摘要式认证对象*/
$auth1=new Zend_Auth_Adapter_Digest($filename,$realm1,$username1,$password1);
$result1=$auth1->authenticate(); //返回一个Zend_Auth_Result
echo "信息:".$realm1." ".$username1." ".$password1;
if($result1->isValid()) //判断结果
{
echo "成功通过认证!"; //如果成功输出内容
}
else //如果失败输出内容
{
echo "无法通过认证!";
echo "<p>";
echo "失败原因为:<p>";
print_r($result1->getMessages()); //输出失败原因
}
echo "<p>";
/*以下内容同上*/
$realm2="ms"; //定义领域2
$username2="bill"; //定义用户名2
$password2="boss"; //定义密码2
$auth2=new Zend_Auth_Adapter_Digest($filename,$realm2,$username2,$password2);
$result2=$auth2->authenticate(); //返回一个Zend_Auth_Result
echo "信息:".$realm2." ".$username2." ".$password2;
if($result2->isValid()) //判断结果
{
echo "成功通过认证!"; //如果成功输出内容
}
else //如果失败输出内容
{
echo "无法通过认证!";
echo "<p>";
echo "失败原因为:<p>";
print_r($result2->getMessages()); //输出失败原因
}
echo "<p>";
$realm3="ms"; //定义领域3
$username3="user"; //定义用户名3
$password3="123"; //定义密码3
$auth3=new Zend_Auth_Adapter_Digest($filename,$realm3,$username3,$password3);
$result3=$auth3->authenticate(); //返回一个Zend_Auth_Result
echo "信息:".$realm3." ".$username3." ".$password3;
if($result3->isValid()) //判断结果
{
echo "成功通过认证!"; //如果成功输出内容
}
else //如果失败输出内容
{
echo "无法通过认证!";
echo "<p>";
echo "失败原因为:<p>";
print_r ($result3->getMessages()); //输出失败原因
}
?>
代码片段二:
<?php
require_once 'Zend/Auth/Adapter/DbTable.php';
//加载Zend_Db/Adapter/Pdo/Sqlite.php
require_once 'Zend/Db/Adapter/Pdo/Sqlite.php';
//在当前目录下创建一个名为db.mdb的数据库
$dbAdapter=new Zend_Db_Adapter_Pdo_Sqlite(array('dbname'=>'db.mdb'));
//构造一个简单表的创建语句
$sqlCreate='CREATE TABLE [users]('
.'[id] INTEGER NOT NULL PRIMARY KEY,'
.'[username] VARCHAR(50) UNIQUE NOT NULL,'
.'[password] VARCHAR(32) NULL,'
.'[real_name] VARCHAR(150) NULL)';
//执行建表语句
$dbAdapter->query($sqlCreate);
//构造用来插入一行可以成功认证的数据的语句
$sqlInsert='INSERT INTO users(username,password,real_name)'.'VALUES("my_username","my_password","my Real Name")';
//执行插入数据操作
$dbAdapter->query($sqlInsert);
?>
代码片段三:
<?php
//加载Zend_Auth/Adapter/Dbtable.php
require_once 'Zend/Auth/Adapter/DbTable.php';
//加载Zend_Db_Adapter/Pdo/Sqlite.php
require_once 'Zend/Db/Adapter/Pdo/Sqlite.php';
//创建数据库对象
$dbAdapter=new Zend_Db_Adapter_Pdo_Sqlite(array('dbname'=>'db.mdb'));
//创建适配器对象
$authAdapter=new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTablename('users'); //设置认证表名
$authAdapter->setIdentityColumn('username'); //设置标记列
$authAdapter->setCredentialColumn('password'); //设置凭记列
$authAdapter->setIdentity('123')
->setCredential('456'); //设置标记与凭记内容
$result = $authAdapter->authenticate(); //进行认证并返回一个Zend_Auth_Result对象
$temp=$result->isValid(); //调用对象的isValid()方法
if($temp) //判断是否成功通过认证
{
echo "使用用户名123密码456成功通过认证!";
echo "<p>";
}
else
{
echo "使用用户名123密码456无法通过认证!";
echo "<p>";
}
$authAdapter->setIdentity('my_username')
->setCredential('my_password'); //设置标记与凭记内容
$result = $authAdapter->authenticate(); //进行认证
//print_r($result->getResultRowObject());
$authAdapter->getResultRowObject('username','password');
$temp=$result->isValid(); //调用isValid()方法
if($temp)
{
echo "使用用户名my_username,密码my_password成功通过认证!";
echo "<p>";
}
else
{
echo "使用用户名my_username,密码my_password无法通过认证!";
echo "<p>";
}
?>
代码片段四:
<?php
//加载Zend_Auth/Adapter/Dbtable.php
require_once 'Zend/Auth/Adapter/DbTable.php';
//加载Zend_Db_Adapter/Pdo/Sqlite.php
require_once 'Zend/Db/Adapter/Pdo/Sqlite.php';
//创建数据库对象
$dbAdapter=new Zend_Db_Adapter_Pdo_Sqlite(array('dbname'=>'db.mdb'));
//创建适配器对象
$authAdapter=new Zend_Auth_Adapter_DbTable($dbAdapter);
$authAdapter->setTablename('users'); //设置认证表名
$authAdapter->setIdentityColumn('username'); //设置标记列
$authAdapter->setCredentialColumn('password'); //设置凭记列
$authAdapter->setIdentity('my_username')
->setCredential('my_password'); //设置标记与凭记内容
$authAdapter->authenticate(); //进行认证
$result=$authAdapter->getResultRowObject(); //获取结果的一行
echo "获取的一行结果内容为:";
echo "<p>";
print_r($result); //输出结果内容
?>
代码片段五:
<?php
//加载Zend_Auth_Adapter_Http组件
require_once 'Zend/Auth/Adapter/Http.php';
//加载Zend_Auth_Adapter_Http_Resolver_File组件
require_once 'Zend/Auth/Adapter/Http/Resolver/File.php';
$config=array(
'accept_schemes'=>'basic',
'realm'=>'ms',
); //定义配置数组
$adapter=new Zend_Auth_Adapter_Http($config); //实例化一个Zend_Auth_Adapter_Http对象
$basicResolver=new Zend_Auth_Adapter_Http_Resolver_File(); //实例化resolver文件对象
$basicResolver->setFile('pass2.txt'); //设置文件
$adapter->setBasicResolver($basicResolver); //设置基本认证文件对象
require_once 'Zend/Controller/Request/Http.php';
$request=new Zend_Controller_Request_Http();
require_once 'Zend/Controller/Response/Http.php';
$response=new Zend_Controller_Response_Http();
assert($request instanceof Zend_Controller_Request_Http);
assert($response instanceof Zend_Controller_Response_Http);
$adapter->setRequest($request);
$adapter->setResponse($response);
$result = $adapter->authenticate();
if (!$result->isValid())
{
echo "没有通过验证!";
}
?>
代码片段六:
<?php
require_once 'Zend/Auth/Adapter/Interface.php'; //引用认证适配器接口
class MyAdapter implements Zend_Auth_Adapter_Interface //创建自定义类
{
protected $_username; //用户名属性
protected $_password; //密码属性
public function __construct($username=null,$password=null) //类的构造函数
{
//
}
public function getUsername() //获取用户名方法
{
return $this->_username; //返回当前用户名
}
public function getPassword() //获取密码方法
{
return $this->_password; //返回当前密码
}
public function setUsername($username) //设置用户名方法
{
$this->_username=$username; //设置用户名
return $this; //返回当前对象
}
public function setPassword($password) //设置密码方法
{
$this->_password=$password; //设置密码
return $this; //返回当前对象
}
public function authenticate() //进行认证
{
if($this->_username==null or $this->_password==null) //如果参数为空
{
//抛出异常
require_once 'Zend/Auth/Adapter/Exception.php';
throw new Zend_Auth_Adapter_Exception("没有指定用户名与密码!");
}
else
{
//定义结果数组
$result=array(
'code'=> Zend_Auth_Result::FAILURE,
'identity' => array(
'username'=>$this->_username,
'password'=>$this->_password
),
'messages'=>array()
);
if($this->_username=='bill' and $this->_password=='12345') //判断用户名与密码是否为指定值
{
$result['code']=Zend_Auth_Result::SUCCESS; //返回成功CODE
}
else //如果不是指定值
{
$result['code'] = Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID;
$result['messages'][]='提供的用户名或者密码不正确';
}
}
return new Zend_Auth_Result($result['code'], $result['identity'], $result['messages']);
}
}
$my_adapter=new MyAdapter(); //为自定义适配器实例化对象
$my_adapter->setUsername("1234"); //使用方法设置用户名
$my_adapter->setPassword("zzzzz"); //使用方法设置密码
$result=$my_adapter->authenticate(); //再次调用认证方法
if(!$result->isValid())
{
echo "使用".$my_adapter->getUsername()."与".$my_adapter->getPassword();
echo "不能通过验证";
echo "<p>其原因为:";
print_r($result->getMessages());
}
else
{
echo "使用".$my_adapter->getUsername()."与".$my_adapter->getPassword();
echo "成功通过验证!";
}
echo "<p>";
$my_adapter->setUsername("bill"); //使用方法设置用户名
$my_adapter->setPassword("12345"); //使用方法设置密码
$result=$my_adapter->authenticate(); //再次调用认证方法
if(!$result->isValid())
{
echo "使用".$my_adapter->getUsername()."与".$my_adapter->getPassword();
echo "不能通过验证";
echo "<p>其原因为:";
print_r($result->getMessages());
}
else
{
echo "使用".$my_adapter->getUsername()."与".$my_adapter->getPassword();
echo "成功通过验证!";
}
?>
代码片段七:
<?php
echo base64_encode("boss");
?>
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明


网友评论
我要评论