楼主可以将SESSION直接存人数据库,然后要怎么显示就怎么显示.session_set_save_handler这个函数控制session后不会产生session文件,session_register("var")直接把数据写在文本里或者是数据库里面,具体由你控制。
(可能写进去的数据变量var有一些无用的前缀的数据)
当然这时候session_unregister和session_destroy函数就没什么用了,因为根本不
产生session文件,你可以参考手册里的这个例子,他是写进文本里面
<?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(""); // Must return "" here.
}}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?>
(可能写进去的数据变量var有一些无用的前缀的数据)
当然这时候session_unregister和session_destroy函数就没什么用了,因为根本不
产生session文件,你可以参考手册里的这个例子,他是写进文本里面
<?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(""); // Must return "" here.
}}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[0][value] = 第1次的内容
$_SESSION[1][value] = 第2次的内容
$_SESSION[2][value] = 第3次的内容
$_SESSION[3][value] = 第4次的内容
$_SESSION[4][value] = 第5次的内容
....
是只要显示一下子呢?还是要一直显示?如果只是显示一下,按xuzuning(唠叨) 老大的方法,可以做到,画个表,
然后一格一格的显示.但,如果你想一直显示,你一定要把SESSION存起来,不然的话,SESSION会清空的
{
//类属性*************************************************************
var $sp_count;//商品类数
var $sp_sumgold;//商品总金额
var $fields;//自定义列
var $f_num;//自定义列数
var $f_key;//作为判断商品是否重复的关键字
var $f_goldkey;//商品金额字段名
var $f_numkey;//商品数量字段名
var $cart;
//构造函数
function twt_Cart()
{
//从SESSION中读出一些必须参数
session_start();
if (! session_is_registered("mycart")) session_register("mycart");
$mycart=$_SESSION["mycart"];
$this->sp_count=count($mycart);
if (! session_is_registered("mc_fields")) session_register("mc_fields");
$this->fields=$_SESSION["mc_fields"];
$this->f_num=count($this->fields)-1;
if (! session_is_registered("mc_key")) session_register("mc_key");
$this->f_key=$_SESSION["mc_key"];
if (! session_is_registered("mc_goldkey")) session_register("mc_goldkey");
$this->f_goldkey=$_SESSION["mc_goldkey"];
if (! session_is_registered("mc_numkey")) session_register("mc_numkey");
$this->f_numkey=$_SESSION["mc_numkey"];
$this->cart=$mycart;
$this->updatecart();
}
//类方法***************************************************************
//更新总金额
function updatecart()
{
session_start();
if (! session_is_registered("mycart")) return false;
$mycart=$_SESSION["mycart"];
$tmp=0;
for ($i=0;$i<$this->sp_count;$i++)
$tmp+=$mycart[$i][$this->f_goldkey]*$mycart[$i][$this->f_numkey];
$this->sp_sumgold=$tmp;
}
//设置自定义字段及初始化类 数组参数,以0开头
function setfield($tfield)
{
if (is_array($tfield))
{
$this->fields=$tfield;
//初始化一些值
$this->f_num=count($tfield)-1;
$this->f_key=$tfield[0];
$this->f_goldkey=$tfield[0];
$this->f_numkey=$tfield[0];
session_start();
$_SESSION["mc_fields"]=$tfield;
$_SESSION["mc_key"]=$tfield[0];
$_SESSION["mc_goldkey"]=$tfield[0];
$_SESSION["mc_numkey"]=$tfield[0];
}
else
return "参数传输错误,请传入从0开始下标的数组!";
}//setfield end //设置关键字
function setkey($key,$numkey,$goldkey)
{
$this->f_key=$key;
$this->f_goldkey=$goldkey;
$this->f_numkey=$numkey;
session_start();
$_SESSION["mc_key"]=$key;
$_SESSION["mc_goldkey"]=$goldkey;
$_SESSION["mc_numkey"]=$numkey;
}
//清除购物篮
function clear()
{
$mycart=$_SESSION["mycart"];
unset ($mycart);
$_SESSION["mycart"]=$mycart;
session_unregister("mycart");
session_unregister("mc_fields");
session_unregister("mc_key");
session_unregister("mc_goldkey");
session_unregister("mc_numkey");
$this->cart=$mycart;
$this->sp_count=0;
$this->sp_sumgold=0;
}
//功能方法/////////////////////////////////////////////////////////
//添加商品 数组参数,以自定义的字段名这下标
function addone($splist)
{
if ((! is_array($splist)) || ((count($splist)-1) != $this->f_num))
return "参数传输错误,请传入以自定义字段名为下标且元数个数吻合的数组!";
session_start();
$mycart=$_SESSION["mycart"];
//判断商品是否已经存在,如果存在,则加上
$tflag=true;
for ($i=0;$i<$this->sp_count;$i++)
{
if ($mycart[$i][$this->f_key]==$splist[$this->f_key])
{
$tflag=false;
//增加商品个数
$mycart[$i][$this->f_numkey]+=$splist[$this->f_numkey];
$i=$this->sp_count;
}
}
//添加商品到列表中
if ($tflag)
{
for ($i=0;$i<=$this->f_num;$i++)
{
$mycart[$this->sp_count][$this->fields[$i]]=$splist[$this->fields[$i]];
}
$this->sp_count+=1;
}
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}//add end
//删除一个商品
function delone($id)
{
session_start();
$mycart = $_SESSION["mycart"] ;
for ($i=$id;$i<$this->sp_count-1;$i++)
{
for ($j=0;$j<=$this->f_num;$j++)
$mycart[$i][$this->fields[$j]]=$mycart[$i+1][$this->fields[$j]];
}
unset( $mycart[$this->sp_count-1] ) ;
$this->sp_count-=1;
$_SESSION["mycart"] = $mycart ;
$this->cart=$mycart;
$this->updatecart();
}//del end
//修改一件商品的数量
function modifyone($id,$num)
{
session_start();
$mycart = $_SESSION["mycart"] ;
if (! empty($mycart[$id][$this->f_key]))
$mycart[$id][$this->f_numkey]=$num;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}
//修改一件商品的单价
function modifyprice($id,$num)
{
session_start();
$mycart = $_SESSION["mycart"] ;
if (! empty($mycart[$id][$this->f_key]))
$mycart[$id][$this->f_goldkey]=$num;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}//modifyprice end
//某件商品加1
function add1($id)
{
session_start();
$mycart = $_SESSION["mycart"] ;
$mycart[$id][$this->f_numkey]+=1;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}
//某件商品减1
function del1($id)
{
session_start();
$mycart = $_SESSION["mycart"] ;
$mycart[$id][$this->f_numkey]-=1;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}
}//class end
?>
{
//类属性*************************************************************
var $sp_count;//商品类数
var $sp_sumgold;//商品总金额
var $fields;//自定义列
var $f_num;//自定义列数
var $f_key;//作为判断商品是否重复的关键字
var $f_goldkey;//商品金额字段名
var $f_numkey;//商品数量字段名
var $cart;
//构造函数
function twt_Cart()
{
//从SESSION中读出一些必须参数
session_start();
if (! session_is_registered("mycart")) session_register("mycart");
$mycart=$_SESSION["mycart"];
$this->sp_count=count($mycart);
if (! session_is_registered("mc_fields")) session_register("mc_fields");
$this->fields=$_SESSION["mc_fields"];
$this->f_num=count($this->fields)-1;
if (! session_is_registered("mc_key")) session_register("mc_key");
$this->f_key=$_SESSION["mc_key"];
if (! session_is_registered("mc_goldkey")) session_register("mc_goldkey");
$this->f_goldkey=$_SESSION["mc_goldkey"];
if (! session_is_registered("mc_numkey")) session_register("mc_numkey");
$this->f_numkey=$_SESSION["mc_numkey"];
$this->cart=$mycart;
$this->updatecart();
}
//类方法***************************************************************
//更新总金额
function updatecart()
{
session_start();
if (! session_is_registered("mycart")) return false;
$mycart=$_SESSION["mycart"];
$tmp=0;
for ($i=0;$i<$this->sp_count;$i++)
$tmp+=$mycart[$i][$this->f_goldkey]*$mycart[$i][$this->f_numkey];
$this->sp_sumgold=$tmp;
}
//设置自定义字段及初始化类 数组参数,以0开头
function setfield($tfield)
{
if (is_array($tfield))
{
$this->fields=$tfield;
//初始化一些值
$this->f_num=count($tfield)-1;
$this->f_key=$tfield[0];
$this->f_goldkey=$tfield[0];
$this->f_numkey=$tfield[0];
session_start();
$_SESSION["mc_fields"]=$tfield;
$_SESSION["mc_key"]=$tfield[0];
$_SESSION["mc_goldkey"]=$tfield[0];
$_SESSION["mc_numkey"]=$tfield[0];
}
else
return "参数传输错误,请传入从0开始下标的数组!";
}//setfield end //设置关键字
function setkey($key,$numkey,$goldkey)
{
$this->f_key=$key;
$this->f_goldkey=$goldkey;
$this->f_numkey=$numkey;
session_start();
$_SESSION["mc_key"]=$key;
$_SESSION["mc_goldkey"]=$goldkey;
$_SESSION["mc_numkey"]=$numkey;
}
//清除购物篮
function clear()
{
$mycart=$_SESSION["mycart"];
unset ($mycart);
$_SESSION["mycart"]=$mycart;
session_unregister("mycart");
session_unregister("mc_fields");
session_unregister("mc_key");
session_unregister("mc_goldkey");
session_unregister("mc_numkey");
$this->cart=$mycart;
$this->sp_count=0;
$this->sp_sumgold=0;
}
//功能方法/////////////////////////////////////////////////////////
//添加商品 数组参数,以自定义的字段名这下标
function addone($splist)
{
if ((! is_array($splist)) || ((count($splist)-1) != $this->f_num))
return "参数传输错误,请传入以自定义字段名为下标且元数个数吻合的数组!";
session_start();
$mycart=$_SESSION["mycart"];
//判断商品是否已经存在,如果存在,则加上
$tflag=true;
for ($i=0;$i<$this->sp_count;$i++)
{
if ($mycart[$i][$this->f_key]==$splist[$this->f_key])
{
$tflag=false;
//增加商品个数
$mycart[$i][$this->f_numkey]+=$splist[$this->f_numkey];
$i=$this->sp_count;
}
}
//添加商品到列表中
if ($tflag)
{
for ($i=0;$i<=$this->f_num;$i++)
{
$mycart[$this->sp_count][$this->fields[$i]]=$splist[$this->fields[$i]];
}
$this->sp_count+=1;
}
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}//add end
//删除一个商品
function delone($id)
{
session_start();
$mycart = $_SESSION["mycart"] ;
for ($i=$id;$i<$this->sp_count-1;$i++)
{
for ($j=0;$j<=$this->f_num;$j++)
$mycart[$i][$this->fields[$j]]=$mycart[$i+1][$this->fields[$j]];
}
unset( $mycart[$this->sp_count-1] ) ;
$this->sp_count-=1;
$_SESSION["mycart"] = $mycart ;
$this->cart=$mycart;
$this->updatecart();
}//del end
//修改一件商品的数量
function modifyone($id,$num)
{
session_start();
$mycart = $_SESSION["mycart"] ;
if (! empty($mycart[$id][$this->f_key]))
$mycart[$id][$this->f_numkey]=$num;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}
//修改一件商品的单价
function modifyprice($id,$num)
{
session_start();
$mycart = $_SESSION["mycart"] ;
if (! empty($mycart[$id][$this->f_key]))
$mycart[$id][$this->f_goldkey]=$num;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}//modifyprice end
//某件商品加1
function add1($id)
{
session_start();
$mycart = $_SESSION["mycart"] ;
$mycart[$id][$this->f_numkey]+=1;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}
//某件商品减1
function del1($id)
{
session_start();
$mycart = $_SESSION["mycart"] ;
$mycart[$id][$this->f_numkey]-=1;
$this->cart=$mycart;
$_SESSION["mycart"]=$mycart;
$this->updatecart();
}
}//class end
?>