PHPショッピングカートカテゴリ:
要件には、たとえば食品の種類と数量だけが記録されるため、製品の数量は記録されません。それは自分自身です
//setcookie("カート","s:26,45,4,4523423|d:17,7,27,26|e:12,13,123,43|f:34");
//cartAdd('e','167');
//getProInfo('z');
//delProInfo('f','26');
/**
*************
* マイプランのローカル情報変更のためのCOOKIEの記録、修正、削除のクラス
*リクアン
*/
クラスカート
{
/*
COOKIESショッピングカートを実装します
@type製品タイプ
@id商品番号
COOKIESの結果はtype1:3,45,23|type2:34,234,34|type3:344,124です
*/
関数cartAdd(type,id)
{
//初めて使用する場合は、COOKIESをリセットします
if(!isset(_COOKIE["カート"]))
{
Setcookie("カート",type.":".id);
}
その他
{
//初めてでない場合は、最初に取り出してください
cartStr=_COOKIE["カート"];
//結果を分離する
cartarray=split("|",cartStr);
// 型が存在するかどうかを判断するために使用されます。最初は存在せず、ゼロです
。istype=0;
//品番一覧
id_list;
//製品のリサイクル
for (i=0;i
){
//製品名と製品番号のリストを取得します
list(carttype,product)=split(":",cartarray[i]);
//既存の商品が保存したい商品と似ている場合は、isType を 1 に変更し、商品が既に存在することを示します
if (type==carttype)
{
istype=1;
//製品番号リストを取得します
id_list=製品;
//ループを中断します
休憩 ;
}
}
//商品が存在しない場合
if(istype==0)
{
//新しい製品と製品エディターを COOKIES に追加します
cartStr=cartStr."|".type.":".id;
}
その他
{
//商品リストを配列に分割する
id_list=split(",",id_list);
//運用ポート番号が存在するかどうかを識別します。最初は存在しません
isId=0;
//サイクル品番
for(i=0;i
{
//保存したい品番が既に存在する場合
if(id==id_list[i])
{
//ロゴはすでに存在します ループを終了します
isId=1;
休憩;
}
}
//ここには製品タイプと製品番号のみが表示されるため、同じものは数量を追加せず、直接無視されます
//該当する種類の品番が存在しない場合は、新しい番号を追加します
if(isId!=1)
{
cartStr=str_replace(type.":",type.":".id.",",cartStr);
//cartStr=str_replace('d:','d:2,',cartStr);
}
}
setcookie("cart",cartStr);
print_r(_COOKIE["カート"]);
//setcookie("カート","",time()-100);
}
戻る ;
}
//該当商品一覧に戻る
/*
@type製品タイプ
*/
関数getProInfo(type)
{
//ショッピングカートのクッキーを取得
cartStr=_COOKIE["カート"];
// COOKIESの文字を一致させて商品リストを取得します
preg_str=type.":((d+),)*(d+)";
//エコー「
」
";
preg_match("/".preg_str."/",cartStr,proStr);
//echo proStr[0];
//exit();
list(protype,product)=split(":",proStr[0]);
商品を返品する;
//pro_list=split(",",product);
//商品一覧に戻る
//return pro_list;
// print_r(pro_list);
}
/*
*商品を削除します
*@type 製品タイプ名
*@id商品番号
*/
関数delProInfo(type,id)
{
//ショッピングカートのクッキーを取得
cartStr=_COOKIE["カート"];
// COOKIESの文字を一致させて商品リストを取得します
preg_str=type.":((d+),)*(d+)";
//エコー「
」
";
preg_match("/".preg_str."/i",cartStr,proStr);
//削除したい型が見つかった場合のみ以下の操作を行ってください
if(proStr)
{
//削除型に削除対象のIDがあるか問い合わせる
isproId=strstr(proStr[0],id);
//「はい」の場合は、次の操作に進みます
if(isproId)
{
//製品文字列を更新しました
upproStr;
//最新製品のすべての COOKIES キャラクターを更新しました
newCartStr;
//削除対象の商品が複数あるか確認します
preg_match("/,/",proStr[0],isend);
//「はい」の場合、次の操作を実行します
if(送信する)
{
//削除する商品の後ろに商品があるかを確認します
preg_match("/".id.",/",proStr[0],isdot);
//ある場合は次のカンマを削除
if(isdot)
{
upproStr=str_replace(id.",","",proStr[0]);
}
//そうでない場合は、前のカンマを削除します
その他
{
upproStr=str_replace(",".id,"",proStr[0]);
}
//COOKIESに挿入する文字列を更新します
newCartStr=str_replace(proStr[0],upproStr,cartStr);
}
//複数ない場合は、このタイプの商品を直接削除します
その他
{
//このタイプの商品の背後に他の商品があるかどうかを判断します
preg_match("/".proStr[0]."|/",cartStr,issu);
//ある場合は次の区切り文字を削除
もしも(いす)
{
newCartStr=str_replace(proStr[0]."|","",cartStr);
}
//そうでない場合は、前の区切り文字を削除します
その他
{
newCartStr=str_replace("|".proStr[0],"",cartStr);
}
}
Setcookie("カート",newCartStr);
}
}
}
関数deletecart()
{
Setcookie("カート","",time()-100);
}
}
?>