ホームページ  >  記事  >  バックエンド開発  >  php SESSIONクラス(ショッピングカートクラス)_PHPチュートリアル

php SESSIONクラス(ショッピングカートクラス)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:43:52848ブラウズ

SESSIONはphpでよく使われるもので、ユーザーがログインした場合のグローバルページの情報を記録するためによく使われますが、もう一つよく使われるのがショッピングカートクラスです。

PHP での SESSION のアプリケーションは不可欠であり、ネットワーク アプリケーションでは SESSION は「セッション」と呼ばれ、ユーザーがセッション間を移動するときに必要な情報を保存するものとして理解されます。 Web サイトのページでは、保存された SESSION 値は失われませんが、ユーザー セッション全体を通じて存続します。平たく言えば、ユーザー A がオンラインになると、ID (A) 値が作成され、保存されます。ID (A) 値がログアウトされていない場合、次回オンラインになるときに Web サイトは ID (A) を記憶します。 ) 値がある場合、この時点で、オンラインで ID (A) 値を呼び出すことができます。たとえば、もう一度 ID (A) 値にアクセスしてください。

PHP で SESSION 値を適用するのは非常に簡単です。セッションを開始するには、SESSION を使用します。実際、SESSION 自体には多くの属性があります。 、SESSIONサイクル、SESSION呼び出し、SESSIONデータ有効期間、SESSION保存、SESSIONログアウトなどの属性があれば、比較的標準化されたSESSIONアプリケーションセッションと思われます。

以下は、Session の最も基本的な属性値を統合した完全な Session クラスです。その中で、オープン、クローズ、クリーニングは PHP プログラミングの仕様に準拠しており、これも良い習慣です。ちょっとした注意点として、Web サイトで Session クラスを頻繁に使用しない場合は、基本的に SESSION クラスを使用する必要はありません。

代码如下 复制幣


  /**
* ファイル説明 セッションクラス
* ================================================ ================
※ファイル名 session.class.php
*------------------------------------------------ - ---------------
※適用環境:PHP5.2.x / mysql 5.0.x
*------------------------------------------------ - ---------------
※作者は04ieです。コム
*------------------------------------------------ - ---------------
※作成時間 2010-2-1
* ================================================ ================
*/
クラスセッション
{
/**
*セッションのデフォルト有効時間
* @アクセス公開
* @var ineger $_expiry
*/
パブリック $_expiry = 3600;
/**
* 有効なドメイン名
* @アクセス公開
* @var string $_domain
*/
パブリック $_domain = '.phpfamily.cn';
//初化
パブリック関数 __construct()
{
ini_set('session.use_trans_id', 0);
ini_set('session.gc_maxlifetime', $this->_expiry);
ini_set('session.use_cookie', 1);
ini_set('session.cookie_path', '/');
ini_set('session.cookie_domain', $this->_domain);
セッションモジュール名('ユーザー');
session_set_save_handler(
配列(&$this, 'open'),
array(&$this, 'close'),
配列(&$this, '読み取り'),
array(&$this, '書き込み'),
array(&$this, 'destroy'),
配列(&$this, 'gc')
);
session_start();
}
/**
*セッションを打ちます
* @アクセス公開
* @param string $savePath
* @param string $sName
* @return true
*/
パブリック関数 open($savePath, $sName)
{
$this->_conn = mysql_connect('localhost', 'root', '');
mysql_select_db('データベース');
mysql_query('SET NAMES "utf8"');
true を返します;
}
/**
* セッションを終了します
* @アクセス公開
* @return bool
*/
パブリック関数 close()
{
return mysql_close($this->_conn);
}
/**
* セッションを読む
* @アクセス公開
* @param string $sid セッションID
* @return 混合
*/
パブリック関数 read($sid)
{
$sql = "セッション WHERE sessionid='%s'";
からデータを選択します $sql = sprintf($sql, $sid);
$res = mysql_query($sql, $this->_conn);
$row = mysql_fetch_assoc($res);
!$row を返しますか? null : $row['data'];
}
/**
* セッションに書き込みます
* @アクセス公開
* @param string $sid セッションID
* @param string $data シリアル化されたセッション コンテンツをシリアル化します
* @return
*/
パブリック関数 write($sid, $data)
{
$expiry = time() + $this->_expiry;
$sql = "セッションに置き換えます (セッション ID,expiratio
) n,data) VALUES ('%s', '%d', '%s')";
$sql = sprintf($sql, $sid, $expiry, $data);
mysql_query($sql, $this->_conn);
true を返します;
}
/**
* セッションを破棄します
* @アクセス公開
* @param string $sid セッションID
* @return
*/
パブリック関数 destroy($sid)
{
$sql = "セッション WHERE から削除 sessionid='%s'";
$sql = sprintf($sql, $sid);
mysql_query($sql, $this->_conn);
true を返します;
}
/**
* 期限切れのセッションをクリーンアップします
* @アクセス公開
* @param integer $time
* @return
*/
パブリック関数 gc($time = 0)
{
$sql = "期限切れのセッションから削除 $sql = sprintf($sql, time());
mysql_query($sql, $this->_conn);
mysql_query('テーブルセッションの最適化');
true を返します;
}
 

別の php セッションのショッピング カート クラスを見てみましょう

コードは次のとおりです コードをコピー

クラスカート{
パブリック関数 Cart() {
if(!isset($_SESSION['カート'])){
$_SESSION['カート'] = 配列();
}
}

/*
商品を追加
param int $id 製品の主キー
文字列 $name 製品名
float $price 製品価格
int $num ショッピング数量
*/
パブリック関数 addItem($id,$name,$price,$num,$img) {
//商品がすでに存在する場合は、数量を直接追加します
if (isset($_SESSION['cart'][$id])) {
$this->incNum($id,$num);
戻る;
}
$item = array();
$item['id'] = $id;
$item['name'] = $name;
$item['価格'] = $価格;
$item['num'] = $num;
$item['img'] = $img;
$_SESSION['カート'][$id] = $item;
}

/*
ショッピングカート内の商品の数量を変更します
int $id 製品の主キー
int $num は特定の製品の変更された数量です。つまり、特定の製品を直接置き換えます
の数量が $num に変更されます
*/
パブリック関数 modNum($id,$num=1) {
if (!isset($_SESSION['cart'][$id])) {
false を返します;
}
$_SESSION['cart'][$id]['num'] = $num;
}

/*
商品数量+1
*/
パブリック関数 incNum($id,$num=1) {
if (isset($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id]['num'] += $num;
}
}

/*
商品数量-1
*/
パブリック関数 decNum($id,$num=1) {
if (isset($_SESSION['cart'][$id])) {
$_SESSION['cart'][$id]['num'] -= $num;
}

//削減後に数量が0になった場合、この商品を削除します
if ($_SESSION['cart'][$id]['num'] $this->delItem($id);
}
}

/*
商品を削除
*/
パブリック関数 delItem($id) {
unset($_SESSION['cart'][$id]);
}

/*
単品商品をゲット
*/
パブリック関数 getItem($id) {
$_SESSION['cart'][$id] を返します;
}

/*
ショッピングカート内の商品の種類を確認してください
*/
パブリック関数 getCnt() {
戻り値($_SESSION['cart']);
}

/*
ショッピングカート内の商品数を確認してください
*/
パブリック関数 getNum(){
if ($this->getCnt() == 0) {
//種の数は0、数も0です
0 を返す;
}

$sum = 0;
$data = $_SESSION['カート'];
foreach ($data を $item) {
$sum += $item['num'];
}
$sum を返します;
}

/*
ショッピングカート内の商品の合計金額
*/
パブリック関数 getPrice() {
//数量は 0、価格は 0 です
if ($this->getCnt() == 0) {
0 を返す;
}
$価格 = 0.00;
foreach ($this->items as $item) {
$price += $item['num'] * $item['price'];
}
sprintf("%01.2f", $price);
を返します }

/*
ショッピングカートをクリア
*/
パブリック関数 Clear() {
$_SESSION['カート'] = 配列();
}
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/633150.html技術記事 SESSION は、php でよく使用されるものです。ユーザーがログインする場合、バックグラウンド管理などによく使用されます。次に、ショッピング カート クラスを使用します。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。