分类广告


推荐文章

  • 没有找到任何内容!
您当前的位置:中国站长下载网络编程PHP专区 → 文章内容

PHPLIB的基本使用

  • 作者:佚名    来源:不详    发布时间:2006-2-26 2:03:31
  • 字体大小:
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"));

}
<