php中的session 和cookie用法:
cookie用法:
//设置user= alex porter 在 规定的 从当前时间开始 的1个小时后 失效;
setcookie("user", "Alex Porter", time()+3600);
//获取:cookie
if(isset($_COOKIE['user'])){ echo "获得了".$_COOKIE['user'];}
//删除cookie:
setcookie("user","",time()3600)
sessioin用法:
开始 :
<?php session_start(); ?>
使用:
$_SESSION['views']=1;echo "Pageviews=". $_SESSION['views'];
释放session:
unset($_SESSION['views']);注销session:session_desdroy();
在zend framework中的使用方法:
sessioin使用:
//在加载中;初始化一个 session 如下; 为该session创建个命名空间为charm ;然后把这个session 写入注册表中
为什么写入;是因为以后各个 模块调用的时候可以自己用;
public function initSession()
{
Zend_Session::start();
Zend_Session::setOptions($this->config->session->toArray());
//设置一个单例命名空间 为charm
$session = new Zend_Session_Namespace("charm",true);
Zend_Registry::set("session", $session);
}
下面:假设有个类: user.class 那么在其初始化中就可以这样调用:
public function init()
{
//初始化model
$this->user = new UserModel();
//获取存放session的网站命名空间 charm
$this->session = Zend_Registry::get("session");
//$db = Zend_Registry::get("db"); 这样也是可以的
//读取cookies初始化session
$this->sessioninit();
}
public function sessioninit()
{
$userid = '';
if(@$_COOKIE['COOKIE_MEMBER_ID'])
{
$userid = @$_COOKIE['COOKIE_MEMBER_ID'];
}
$username = '';
if(@$_COOKIE['COOKIE_MEMBER_NAME'])
{
$userid = @$_COOKIE['COOKIE_MEMBER_NAME'];
}
}
在上面的代码里已经看到了 @$_COOKIE['COOKIE_MEMBER_NAME']; 没错;这就是zend framework里
怎么获取cookie 的使用方法;就这样的。如果你要问 那谁知道 session 的存活时间呢;其实在 config里面已经设置了
;session 设置
session.remember_me_seconds = 86400 //1天会话标识符还将保存在cookie中的时长
session.use_only_cookies = on
上面是获取cook 下面是 设置cook
setcookie ( "COOKIE_MEMBER_ID", $member_id, time() + 60 * 60 * 24 * 365, "/", ".12ik.com" );
设置了cook 的过期时间是1年( 24*60*60*365) domain 是 以/12ik.com 为命名空间的
删除cook就不用说了 直接设置为0秒就可以;
其次是销毁session方法: