仓酷云

标题: PHP网页设计关于session的几个增补函数 (转) [打印本页]

作者: 再现理想    时间: 2015-2-4 00:23
标题: PHP网页设计关于session的几个增补函数 (转)
学习数据库了,MYSQL可算是PHP的黄金搭档了,不过,虽然话是这么说,你也可能恨不得把MYSQL给生吞活剥了,因为这一行一列的东东简直让自己头晕目眩。session|函数                   关于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));
}   PHP成功的插入,删除,更新数据的时候,显然,你已经距离成功指日可待了。
作者: 飘灵儿    时间: 2015-2-4 12:55
写js我最烦的就是 ie 和 firefox下同样的代码 结果显示的结果千差万别,还是就是最好不要用遨游去调试,因为有时候遨游是禁用js的,有可能代码是争取结果被遨游折腾的认为是代码写错。
作者: 山那边是海    时间: 2015-2-9 22:43
建议加几个专业的phper的群,当然啦需要说话的人多,一处一点问题能有人回答你的,当然啦要让人回答你的问题,平时就得躲在里面聊天,大家混熟啦,愿意回答你问题的人自然就多啦。
作者: 变相怪杰    时间: 2015-2-16 22:06
有时候汉字的空格也能导致页面出错,所以在写代码的时候,要输入空格最好用引文模式。
作者: 只想知道    时间: 2015-3-2 18:15
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 分手快乐    时间: 2015-3-6 21:07
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 冷月葬花魂    时间: 2015-3-8 18:54
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 莫相离    时间: 2015-3-12 06:19
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: 小妖女    时间: 2015-3-14 01:14
php里的数组为空的时候是不能拿来遍历的;(这个有点低级啊,不过我刚被这个边界问题墨迹了好长一会)
作者: 老尸    时间: 2015-3-20 23:05
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 兰色精灵    时间: 2015-4-3 21:50
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 再现理想    时间: 2015-4-10 17:14
为了以后维护的方便最好是代码上都加上注释,“予人方便,自己方便”。此外开发文档什么的最好都弄齐全。我觉得这是程序员必备的素质。虽然会消耗点很多的时间。但是确实是非常有必要的。
作者: 乐观    时间: 2015-4-12 11:39
爱上php,他也会爱上你。
作者: 愤怒的大鸟    时间: 2015-4-12 23:38
实践是检验自己会不会的真理。
作者: 若天明    时间: 2015-4-28 20:41
其实也不算什么什么心得,在各位大侠算是小巫见大巫了吧,望大家不要见笑,若其中有错误的地方请各位大虾斧正。
作者: admin    时间: 2015-5-1 07:05
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
作者: 小魔女    时间: 2015-5-5 10:11
本人接触php时间不长,算是phper中的小菜鸟一只吧。由于刚开始学的时候没有名师指,碰过不少疙瘩,呗很多小问题卡过很久,白白浪费不少宝贵的时间,在次分享一些子的学习的心得。
作者: 小女巫    时间: 2015-5-7 09:39
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
作者: 再见西城    时间: 2015-6-7 18:31
兴趣是最好的老师,百度是最好的词典。
作者: 蒙在股里    时间: 2015-6-29 21:48
php是动态网站开发的优秀语言,在学习的时候万万不能冒进。在系统的学习前,我认为不应该只是追求实现某种效果,因为即使你复制他人的代码调试成功,实现了你所期望的效果,你也不了解其中的原理。
作者: 飘飘悠悠    时间: 2015-7-1 02:33
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2