仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2787|回复: 20
打印 上一主题 下一主题

[学习教程] PHP网页设计关于session的几个增补函数

[复制链接]
变相怪杰 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:27:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
一些真正的强人总会搞出新玩意来丢给你,你不学就落后了,也印证了前人的经验,果然是学无止境啊!session|函数   在PHP下,关于session的会商良多,其其实PHP4中还有几个函数是咱们平常没有注重到的。

上面我把它们引见给人人吧。

个中的session_set_save_handler()可真是个好器材。

//********************
session_unset (PHP4 >= 4.0b4)

void session_unset(void);

这个函数可以把固然注册的一切的session变量置为空。注重它不是unregister,也分歧于destroy。

上面这个例子,对此函数做了很好的申明。

<?php

session_register(''a'',''b'',''c''); //auto-session-start
$a=1;
$b=2;
$c=3;
session_unregister(''a''); //unregistrered $a
echo "A: $a - reg:".session_is_registered(''a'')."
"; // but the global $a remains
session_unset(); // unsets $b und $c
echo "B:$b - reg:".session_is_registered(''b'')."
"; // the registration remains !
echo "C:$c - reg:".session_is_registered(''c'')."
";
echo session_encode();
?>

输入:
A: 1 - reg:
B: - reg:1
C: - reg:1
!b|!c|

//********************************
session_get_cookie_params (PHP4 >= 4.0RC2)

array session_get_cookie_params (void);

前往一个数组,纪录了以后session的cookie的一些信息。
有:

"lifetime" - cookie的保存期。

"path" - cookie的保留途径。

"domain" - cookie的域。

//*******************************
session_set_cookie_params (PHP4 >= 4.0b4)

void session_set_cookie_params (int lifetime [, string path [, string domain]])

设置session的cookie的一些参参数,相似于php.ini中的设置,但本函数所作的设置,只对以后剧本文件无效。


//*******************************

上面要引见的这个函数应是对人人都很有效的,你是否是对自界说一个不必cookie来保留的session有乐趣呢?这个函数就能够完成你如许的假想。

让我想一想,假如不必cookie的优点是甚么?最少一点,你不必忧虑客户真个的cookie的功效是不是翻开了,对吧。


session_set_save_handler (PHP4 >= 4.0b4)

void session_set_save_handler (string open, string close, string read, string write, string destroy, string gc)

这个函数可以界说用户级的session的保留函数(翻开、封闭、写入等)。
好比,咱们想把session保留在当地的一个数据库中时,本函数就很有效了。

!!!注重:利用本函数前,先要设置装备摆设php.ini文件,session.save_hadler=user ,不然,session_set_save_handler()不会失效。

另外,依据我的测试,你假如想让如许的session跨页面利用,还要在每个用到session的剧本文件中到场你自定的函数及session_set_save_handler,所以,最好的办法是做成一个独自的文件,在每个要用到session的剧本顶用include来包括出去。

上面这个例子供应了一个最根基的session保留法,相似于默许的files办法。
假如你想用数据库来完成,这也是很轻易做到的。

Example 1. session_set_save_handler() example

<?php

function open ($save_path, $session_name) {
global $sess_save_path, $sess_session_name;

$sess_save_path = $save_path;
$sess_session_name = $session_name;
return(true);
}

function close() {
return(true);
}

function read ($id) {
global $sess_save_path, $sess_session_name;

$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "r")) {
$sess_data = fread($fp, filesize($sess_file));
return($sess_data);
} else {
return("");
}

}

function write ($id, $sess_data) {
global $sess_save_path, $sess_session_name;

$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
return(fwrite($fp, $sess_data));
} else {
return(false);
}

}

function destroy ($id) {
global $sess_save_path, $sess_session_name;

$sess_file = "$sess_save_path/sess_$id";
return(@unlink($sess_file));
}

/*********************************************
* WARNING - You will need to implement some *
* sort of garbage collection routine here. *
*********************************************/
function gc ($maxlifetime) {
return true;
}

session_set_save_handler ("open", "close", "read", "write", "destroy", "gc");

session_start();

// proceed to use sessions normally
// 如今你就能够象平常一样地利用session了。


?>


//***************************************

session_cache_limiter (PHP4 CVS only)

string session_cache_limiter ([string cache_limiter])

本函数可以设置或获得session.cache_limiter的值。
在php.ini中也能够做一样的设置。其值有 nocache,public,private。

本函数是经由过程HTTP的header发送到客户真个。假如为nocache,将制止任何客户真个cache。而public将答应cache,然而private绝对public而言,更加平安一点。

缺省值是在php.ini中的设置,假如你要利用它,必需在每次挪用session_start()之前挪用本函数。

此函数如今只能在CVS形式下运转,然而PHP4.0.3将撑持它。


Example 1. session_cache_limiter() examples

<?php

# set the cache limiter to ''private''

session_cache_limiter(''private);
$cache_limiter = session_cache_limiter();

echo "The cache limiter is now set to $cache_limiter<p>";
?>

//*****************************

  模仿的不光是模仿,模仿的同时在加改进,就成了自己的作品了。
只想知道 该用户已被删除
沙发
发表于 2015-2-4 13:09:42 | 只看该作者
没接触过框架的人,也不用害怕,其实框架就是一种命名规范及插件,学会一个框架其余的框架都很好上手的。
飘飘悠悠 该用户已被删除
板凳
发表于 2015-2-5 01:08:58 | 只看该作者
微软最近出的新字体“微软雅黑”,虽然是挺漂亮的,不过firefox  支持的不是很好,所以能少用还是少用的好。
再现理想 该用户已被删除
地板
发表于 2015-2-5 20:55:17 | 只看该作者
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
老尸 该用户已被删除
5#
发表于 2015-2-7 05:20:11 | 只看该作者
对于懒惰的朋友,我推荐php的集成环境xampp或者是wamp。这两个软件安装方便,使用简单。但是我还是强烈建议自己动手搭建开发环境。
分手快乐 该用户已被删除
6#
发表于 2015-2-7 14:00:19 | 只看该作者
说php的话,首先得提一下数组,开始的时候我是最烦数组的,总是被弄的晕头转向,不过后来呢,我觉得数组里php里最强大的存储方法,所以建议新手们要学好数组。
兰色精灵 该用户已被删除
7#
发表于 2015-2-12 10:18:11 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
小女巫 该用户已被删除
8#
发表于 2015-2-13 17:31:50 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
变相怪杰 该用户已被删除
9#
 楼主| 发表于 2015-2-23 15:24:22 | 只看该作者
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
admin 该用户已被删除
10#
发表于 2015-3-1 21:47:46 | 只看该作者
刚开始安装php的时候,我图了个省事,把php的扩展全都打开啦(就是把php.ini 那一片 extension 前面的冒号全去掉啦),这样自然有好处,以后不用再需要什么功能再来打开。
透明 该用户已被删除
11#
发表于 2015-3-11 00:02:52 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
活着的死人 该用户已被删除
12#
发表于 2015-3-13 08:09:52 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
愤怒的大鸟 该用户已被删除
13#
发表于 2015-3-20 17:19:53 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
14#
发表于 2015-3-31 03:33:02 | 只看该作者
首先我是坚决反对新手上来就用框架的,因为对底层的东西一点都不了解,造成知识上的真空,会对以后的发展不利。我的观点上手了解下框架就好,代码还是手写。当然啦如果是位别的编程语言的高手的话,这个就另当别论啦。
柔情似水 该用户已被删除
15#
发表于 2015-4-3 22:30:26 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
小魔女 该用户已被删除
16#
发表于 2015-4-7 10:02:01 | 只看该作者
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
若天明 该用户已被删除
17#
发表于 2015-4-10 09:01:34 | 只看该作者
至于模板嘛,各位高人一直以来就是争论不休,我一只小菜鸟就不加入战团啦,咱们新手还是多学点东西的好。
精灵巫婆 该用户已被删除
18#
发表于 2015-4-12 23:55:55 | 只看该作者
我学习了一段时间后,我发现效果并不好(估计是我自身的问题)。因为一个人的精力总是有限的,同时学习这么多,会导致每个的学习时间都得不到保证。
蒙在股里 该用户已被删除
19#
发表于 2015-4-14 13:07:57 | 只看该作者
再就是混迹于论坛啦,咱们的phpchina的论坛就很强大,提出的问题一般都是有达人去解答的,以前的帖子也要多看看也能学到不少前辈们的经验。别的不错的论坛例如php100,javaeye也是很不错的。
深爱那片海 该用户已被删除
20#
发表于 2015-4-16 23:13:56 | 只看该作者
当留言板完成的时候,下步可以把做1个单人的blog程序,做为目标,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-4-29 23:44

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表