文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>PHPLIB的基本使用

PHPLIB的基本使用

时间:2007-02-17  来源:PHP爱好者

1.2.2 PHPLIB的基本用法和实现方法

PHPLIB包含一套提供会话跟踪、允许会话和允许用户的变量、用户认证和权限检查的核心类和函数。在这些类之上,PHPLIB提供了一套普遍所需的”background”类和一套”HTMLwidgets”,这些类可以快速生成基于用户界面的HTML代码。

不需要改变PHPLIB的任何文件。利用PHPLIB可以包含2个或3个文件,安装:local.inc,setup.inc在某些情况下安装prepend. Php3。你不需要改变PHPLIB的任何其他文件。

在PHPLIB的一般应用中只需改变以下三个文件:

1.2.3 SESS 的使用 -- 实现参数传递的方法

SESSION可以保存全局变量名以及提供一套函数从数据库中存取这些变量。

可取得实例变量

Classname 类名

Magic 用于创建ID时的隐藏字串

Mode 传播sessionID的模式。Cookie或get。

Fallback_mode 当$mode不起作用时传播sessionID的模式。$mode设置为cookie

时,$fallback_mode设置为get。

Lifetime 使用session cookies的分钟数。

Allowcache Session页面的控制缓存。如果设置为passive(默认),不发送缓

存控制头。如果设置为no,页面在HTTP/1.1或HTTP/1。0下不被缓

存。如果设置为private,页面在HTTP/1。1下缓存在HTTP/1。0下

不缓存。

Allowcache_expire 允许缓存时页面可以长时间缓存。

Auto_init 在session建立时安装的文件

可取得实例方法

register($varname)

将全局变量名作为session变量记录。

Unregister($varname)

不把全局变量当session变量记录。不会删除变量,但它的值在页面结束时丢失。它不再保留进数据库。

Is_register($varname)

如果变量名用session记录返回真,否则假。

Delete()

删除当前session。

Delete()之后所有session数据都将从数据库中删除。这页的session对象也不可用。因此,在这个session中不要调用page_close()。即使在delete()之后还是可以取得该页的session变量,但在后一页中将丢失。

在cookie模式中,在调用delete()之后如果没有HTML输出,就可以设置新的cookie,可用page_open()打开一个新的session。这样做懂得话,可以再登记一些前面页面的session变量,为新的session调用page_close()。这可以让你改变session,有选择的执行前面页面的session数据。

url($url)

返回一个指向当前session的URL。在get模式中,当前session id附在这个URL后,否则只返回这个URL。

Purl($url)

是print $this->url($url)的简便方式。

Self_url()

返回一个指向当前页面的URL,包括PHP_SELF和QUERY_STRING信息。在get模式中将包含session id。

Pself_url()

是print $this->self_url()的简便方式。

Hidden_session()

增加一个包含session名字和id的隐藏表单元素。

Add_query($qarray)

在GET查询模式中为参数在当前URL后返回字串。

Padd_query($qarray)

是print $this->add_query($qarray)的简便方式。使用如下:

--------------------------------------------------------------------------------

<a href="<<?

$sess->pself_url().$sess->padd_query(array("again"=>"yes"))

?>"> Reload</a> and log in?

--------------------------------------------------------------------------------

reimport_get_vars()

传递表单变量时,表单变量导入PHP,再调用page_open()时,数据库中的值将覆盖新的变量值,表单值丢失。

如果你激活track_vars,可以直接取得HTTP_GET_VARS,这就不是一个问题。但是有一些脚本需要表单变量。

这些脚本可以调用reimport_x_vars()。在恢复session变量后这些函数将再次读取跟踪变量数组和再次初始化全局变量。

内部实例方法

get_id($id_to_use)

get_id()用于内部决定session标识。当前session标识是128位,由模5产生(uniqid($this->magic))。

用一个可选session id作为参数调用get_id();如果你想不中断session来改变session id可以调用该函数(替换老的id,保留页面)

例子:

--------------------------------------------------------------------------------

class My_Session extends Session {

var $classname = "My_Session"; ## Persistence support

var $mode = "cookie";

var $lifetime = 0; ## use session cookies

## which container to use

var $that_class = "Session_sql";

}

--------------------------------------------------------------------------------

使用session要使用页面管理函数。在下面例子中session管理的名字是sess。

将session字类的名字作为页面管理函数的参数。

--------------------------------------------------------------------------------

page_open(array("sess" => "My_Session"));

--------------------------------------------------------------------------------

session可以传递变量,它将变量保存在数据库中,需要时可直接读取。例:

<?php

page_open(array(“sess”=>”MY_Session”));

$sess->register($text); //将$text变量保存在数据库中。

$text=”xxxx”;

page_close();

?>

若想在文件out.php3中读取该$text,如:

<?php

page_open(array(“sess”=>”Session”));

if($sess->is_registered($text)){ //判断$text是否存在数据库中。

echo aaa;

echo $text;

}else{

echo bbb;

}

page_close();

?>

结果将输出:

aaaxxxx

若想删除已记录的变量可用unregister()。调用该函数后,在当前页面还能引用该变量,在此页面结束后不能在引用此变量。

若想删除所有session相关数据包括数据库中的session记录,当前session id和用户浏览器中的session cookie,可以调用$sess->delete()。这普遍用于商务中用户清空自己当前购物车。若想再保留某些数据可再调用register。如下:

--------------------------------------------------------------------------------

<?php

page_open(array("sess" => "Shop_Session"));

// send order as mail

mail_order($shopowner, $user, $cart);

// delete the current session

$sess->delete();

// now get a new session id, but retain the users

// address and name:

page_open(array("sess" => "Shop_Session")); // will force auto_init again!

$sess->register("user"); // could be done in auto_init as well

?>

--------------------------------------------------------------------------------

1.2.4 AUTH 的使用 -- 实现多级用户认证的方法

AUTH可用于认证一个session,即识别session的用户是否有效。

1.2.5 TABLE class 的使用 -- 实现

使用TABLE类可以简洁的显示2维数组或数据库的查询结果。

1.2.6 SQL class的使用

DB_Sql可用于连接SQL数据库。对数据库进行操作。

Query($query_string)

可以对数据库执行$query_string。

Next_record()

可以取得查询结果中的记录。

Num_rows()

可以取得查询结果中记录的数目。

F($field)

可以取得查询记录中字段$field。类似于Record($field)。

例子:

--------------------------------------------------------------------------------

$q = new DB_Article;

$query = "select * from news where news_index=’”.$news_index.”’”;

$q->query($query);

while($q->next_record()) {

echo $q->f("art_id");

echo $q->f("article"));

}
php爱好者站 http://www.phpfans.net 为phper提供一切资讯.
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载