検索
ホームページバックエンド開発PHPチュートリアルphp SESSIONクラス(ショッピングカートクラス)_PHPチュートリアル
php SESSIONクラス(ショッピングカートクラス)_PHPチュートリアルJul 13, 2016 am 10:43 AM
phpsessionもの私たちはい比較する使用親切ショッピングカート

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 までご連絡ください。
php怎么把负数转为正整数php怎么把负数转为正整数Apr 19, 2022 pm 08:59 PM

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

php怎么实现几秒后执行一个函数php怎么实现几秒后执行一个函数Apr 24, 2022 pm 01:12 PM

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php字符串有没有下标php字符串有没有下标Apr 24, 2022 am 11:49 AM

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

php怎么除以100保留两位小数php怎么除以100保留两位小数Apr 22, 2022 pm 06:23 PM

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php怎么读取字符串后几个字符php怎么读取字符串后几个字符Apr 22, 2022 pm 08:31 PM

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

php怎么根据年月日判断是一年的第几天php怎么根据年月日判断是一年的第几天Apr 22, 2022 pm 05:02 PM

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

php怎么替换nbsp空格符php怎么替换nbsp空格符Apr 24, 2022 pm 02:55 PM

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\&nbsp\;||\xc2\xa0)/","其他字符",$str)”语句。

php怎么查找字符串是第几位php怎么查找字符串是第几位Apr 22, 2022 pm 06:48 PM

查找方法:1、用strpos(),语法“strpos("字符串值","查找子串")+1”;2、用stripos(),语法“strpos("字符串值","查找子串")+1”。因为字符串是从0开始计数的,因此两个函数获取的位置需要进行加1处理。

See all articles

ホット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ヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SublimeText3 中国語版

SublimeText3 中国語版

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

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。