在PHP3中实现SESSION的功能(一)

2016-01-29 14:23 5 1 收藏

在PHP3中实现SESSION的功能(一),在PHP3中实现SESSION的功能(一)

【 tulaoshi.com - PHP 】

  SESSION函数库:session.inc.php3

<?php
if (!isset($__session_inc__)){
$__session_inc__=1;
//require("cookie.inc.php3");
# -------------------------------------------------------------------  
# Session Management v1.0 21.6.1998  
# (c) Wild Karl Heinz <kh.wild@wicom.at  
#  
# This Include handle Session based variable handling  
#  
# Please feel free and use it. If you make it more functional  
# it would be nice to send me a copy.  
#  
# Don’t forget - Mysql_connect !  
#  
# The database structure  
# Table structure for table ’session’  
#  
# CREATE TABLE session (  
# id int(11) DEFAULT ’0’ NOT NULL auto_increment,  
# sid varchar(20) DEFAULT ’’ NOT NULL,  
# val blob,  
# times timestamp(14),  
# PRIMARY KEY (id),  
# KEY sid (sid),  
# UNIQUE sid_2 (sid)  
# );  
#  
# You’ll miss here a cron job to delete the old sessions from db  
# -------------------------------------------------------------------  

// 请注意上面被注释掉的CREATE TABLE语句,
// 你需要在你所使用的数据库上执行这条语句,
// 表名也可以不是session,那么就需要设置下面的$sess_table变量了。

// 此处你需要设置库名,和表名。
// 不过一般建议就使用session作为表名
$sess_db = ’dbname’;  
$sess_table = ’session’;  

# ----------------------------------------------------  
# Session_CheckID - 检查、设置并返回 Session-ID  
# 参数......: cookie保存时间(以分钟计)
# 也可不设置表示这个 cookie 只在当前session 有效
# 这其实就象ASP中SESSION的时效一样。
# 返回值....: 一个唯一的Session-ID (作为cookie存储)
# ----------------------------------------------------  
function Session_CheckID( $min )  
{
global $sess_sid;  

if( !$sess_sid ) {  
$sess_sid = uniqid( SC ); //取得一个唯一的随机数
/*
if( $min 0 ) {  
SetCookie("sess_sid", $sess_sid, time()+($min*60), "/", "", 0 );  
}  
else {  
SetCookie("sess_sid", $sess_sid, "", "/", "", 0 );  
}  
上面是原先的代码,会出错。所以另外用了一个更好的函数。
函数库:cookie.inc.php3
*/
jssetcookie("sess_sid",$sess_sid,$min);
return( false );  
}  
else {  
return( true );  
}  
}  

# ----------------------------------------------------------  
# str2arr - 将字符串转换成session数组
# 参数.....: string
# 返回值...: 全局数组(其实就是session)  
#本函数用途:将字符串转换成session数组
#如"session[username]=yourid&session[userpass]=12345"
#将会被转换成下面的数组
# session[username]="yourid"
# session[userpass]="12345"
#请注意函数split(),each(),list(),eval()的用法。
# ----------------------------------------------------------  
function str2arr( $ts )  
{  
global $session;  

$vals = split( "&", $ts );  
while( list($key,$val) = each($vals) ) {  
list( $name, $wert ) = split( "=", $val );  
if( $val ) eval( "$$name = "$wert";" );  
}  
}  

# ----------------------------------------------------------  
# session_read() - 从SESSION表中取数据,转换成session数组  
# 参数........: 无
# 返回值......: 如果读出数据,返回 true ,否则返回 false
#注意.........: 用到了str2arr()这个函数
# --------------------------------------------

来源:http://www.tulaoshi.com/n/20160129/1493130.html

延伸阅读
标签: PHP
       PHP4中的SESSION管理   作者: Mattias Nilsson   --------------------------------------------------------------------------------      PHP4的新特性中最引人注目就是对SESSION的管理功能.当别人访问你的站点时,你可以把变量保存到SESSION对象中,...
标签: PHP
  总的感觉php的session功能基本上还能用一用,还算方便,省了很多自己处理   cookie的麻烦事情。php的session管理还是基于文件的,默认的是在/tmp目录   下生成一个和session id同名的session文件,在这个文件里保存register的   session data。session有生存期,在/usr/local/lib/php.ini里可以设置。&nb...
标签: PHP
  比较模糊的是session_decode和session_encode:      bool session_decode(string data);   session_decode() decodes the session data in data, setting variables   stored in the session.      bool session_encode(void);   session_encode() returns a s...
标签: PHP
  介绍 如果你还没有用PHP 实现你自已的购物篮,在读完这篇文章之后你应该可以创建一个了。甚至你可能已经有了一个购物篮,我在这里所提供的一些技巧可能会帮助你改善你的系统。 我将给你一些提示,关于如何去做也许才能减少对购物篮表的无限的查询,或减少无限的文本文件填充你的文件系统,因为应用程序只会做但不会删除它们...
标签: PHP
  Session指的就是用户在浏览某个网站时,从进入网站到浏览器关闭所经过的这段时间,也就是用户浏览这个网站所花费的时间。从上述的定义中我们可以看到,Session实际上是一个特定的时间概念。 一般来说,在网站上某一个页面中的变量(指服务器端变量,下同)是不能在中用的,有了session就好办了。session中注册的变量可以作为全...

经验教程

711

收藏

88
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部