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

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

Jul 13, 2016 am 10:43 AM
php session もの 私たち はい 比較する 使用 親切 ショッピングカート

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 までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

Cakephp4 で日付と時刻を操作するには、利用可能な FrozenTime クラスを利用します。

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

CakePHP バリデータの作成 CakePHP バリデータの作成 Sep 10, 2024 pm 05:26 PM

Validator は、コントローラーに次の 2 行を追加することで作成できます。

CakePHP のロギング CakePHP のロギング Sep 10, 2024 pm 05:26 PM

CakePHP へのログインは非常に簡単な作業です。使用する関数は 1 つだけです。 cronjob などのバックグラウンド プロセスのエラー、例外、ユーザー アクティビティ、ユーザーが実行したアクションをログに記録できます。 CakePHP でのデータのログ記録は簡単です。 log()関数が提供されています

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP はオープンソースの MVC フレームワークです。これにより、アプリケーションの開発、展開、保守がはるかに簡単になります。 CakePHP には、最も一般的なタスクの過負荷を軽減するためのライブラリが多数あります。

See all articles