国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁 php教程 php手冊 僅用PHP4 Session實現(xiàn)的迷你購物籃(一)

僅用PHP4 Session實現(xiàn)的迷你購物籃(一)

Jun 21, 2016 am 09:14 AM
counter price quot session

session

介紹
  如果你還沒有用PHP 實現(xiàn)你自已的購物籃,在讀完這篇文章之后你應該可以創(chuàng)建一個了。甚至你可能已
經(jīng)有了一個購物籃,我在這里所提供的一些技巧可能會幫助你改善你的系統(tǒng)。

  我將給你一些提示,關于如何去做也許才能減少對購物籃表的無限的查詢,或減少無限的文本文件填充
你的文件系統(tǒng),因為應用程序只會做但不會刪除它們。

  如果你對這類的題目是個新手,不要害怕。它實際上相當簡單和有效,你只需要一個支持php4的主機,
象notepad或vi之類的html編輯器,你寶貴的幾分種,和這個小例子。


想法
  在1998年,我有一個在硬件商店工作的朋友要求我為他們編寫一個在線商店。需要快速和簡單,同時還
要有在線管理。當我發(fā)著39度高燒的時候我變得想當有創(chuàng)建力,所以我用perl寫了那個東西,使用minisql
作為后端。在整個處理中我插入了我所提到的迷你購物籃。

  這個迷你購物籃與平常的購物車只有很小的不同,它會在每一頁顯示你的購物車的東西,不需要在放入
一件東西后在購物車來回跳轉。這就是我寫這篇文章的初衷。


目標
  人們喜歡控制,那么為什么不給他們些透明度,以便讓他們相信擁有了控制?這個迷你購物籃演示了一
個完美的方法:它提供給人們所必須的信息,并且節(jié)省了他們一次點擊,接近了在線商店的3擊范例。

  所以,目標就是在任何時候將這個迷你購物籃顯示為你的頁面上的一部分,在結尾處提供一個摘要用以
修改購物籃中的物品,接著在最后發(fā)送一個訂單。

要求
  你應該知道什么是session。如果不知道,這里有一個快速的綱要。已經(jīng)有很多文章關于這個話題,你
可以從中找到所有你需要的代碼例子。在你的開始頁面打開一個session,使用


session_start();

?>

  這樣將創(chuàng)建一個session名字和一個session id。你現(xiàn)在既可以使用缺省的通過基于cookie的設置session
的方式,通過一個表單來傳遞session id,或把它作為一個變量附在你的鏈接上(get方法)的方法。不要忘
記在最后釋放session。:)

  你的商品應該有一個名字,價格和唯一標識,以便能用在這個例子中,如果不這樣,你可能需要做一點
修改。這里我使用mysql作為后端以便建立頁面及其它,為了讓購物能工作這不是必須的。:)

  你應該了解數(shù)組?,F(xiàn)在如果有人有時間利用我的代碼并且創(chuàng)建一個它的類,我理所當然地要感激得到它。

定義
  為了簡化這個例子,我使用了四個獨立的數(shù)組和一些額外的變量。代碼可以被優(yōu)化。這樣可以很容易地
顯示想法和閱讀代碼。可以使用類更好的完成,但是我不能十分肯定是否能夠把對象保存到session 里。有
人想對此發(fā)表評論嗎?

  我們還需要一個項目計數(shù)器。當然可以使用count() 命令來實現(xiàn),我只不過認為它足夠好,以便總能知
道有多少的項目,并且它也為循環(huán)提供了一個好的計數(shù)器。

工作
  讓我們假設在你的HTML頁中有一個商品列表

ID Name Price
1 Mouse 25.00 add
2 Key 100.00 add
3 Car 5000.00 add
4 Game 25.00 add

向你的頁面增加鏈接

  上面的'add'字段應該是一個鏈接,用來將商品放到迷你購物籃中。使用$PHP_SELF將這個鏈接指向它自
已。然后向它增加商品信息。這里是商品1的例子。

add

  商品的名稱能夠包含空格,所以將它放在鏈接的最后。Get方法好象對這個很挑剔。

準備迷你購物籃

  為了代碼重用,讓我們創(chuàng)建一個額外的文件minibasket.inc。我使用.inc擴展名來標識我的包括文件。
使用這個外部文件的原因是,盡管你將使用session變量來傳遞給購物籃,代碼仍然需要有效。這個文件將
包含顯示迷你購物籃的代碼,也包話增加項目的函數(shù)。實現(xiàn)它的最好的地方是將 命令放在你需要的地方。

minibasket.inc的邏輯

  花些時間考慮一下這個。迷你購物籃應該是個什么樣子,它需要些什么特性?這里顯示的迷你購物籃應
該看上去象這樣:

# Name Price
1 Mouse 25.00
3 Game 75.00
Total 100.00

  你可以很容易的通過使用一個外部樣式表格式化這個輸出??墒?,它不應該太大。這個迷你購物籃是一
個信息,然而它不應該成為你所顯示頁面的焦點。

  這個文件的邏輯非常簡單。

檢查是否需要增加一個新的項目。
如果true,增加項目
在加入中,它要檢查復重的記錄,通過更新數(shù)量和價格來更新存在的記錄。
片段1。檢查將要增加的新的項目

  這是一個正常的IF語句,用于檢查$basket變量的值。


if ($basket!=""){
//向籃子中加入項目
}

?>

片段2。在瀏覽器中顯示籃子


if ($ses_basket_items>0){
// 如果在籃子中有項目
for ($basket_counter=0;$basket_counter // 遍歷籃子,打印出每一行
// 你當然可以用格表來格式化顯示
// 需要通過格式化來顯示價格的分值。如果沒有格式化,則.00是不會顯示出來的
$price=sprintf("%01.2f",$ses_basket_price[$basket_counter]);
$amount=$ses_basket_amount[$basket_counter];
$name=$ses_basket_name[$basket_counter];
echo "$amount $name $price";
echo "
\n";
}
} else {
// 在籃子中沒有商品
// 設置項目計數(shù)為0,且清除所有的變量
// 這是一個清除處理。它防止人們得到舊的數(shù)組
$ses_basket_items=0;
unset($ses_basket_name);
unset($ses_basket_amount);
unset($ses_basket_price);
unset($ses_basket_id);
}

?>

  這段代碼不會產(chǎn)生任何結果。項目還沒有被填充,籃子總是空的,所以籃子不會被顯示。那么讓我們向
這個籃子中加些項目吧。




本網(wǎng)站聲明
本文內容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

由於洩漏的自拍顯示器增加了以前價格實惠的相機系列的複雜性,富士 X-M5 的價格預期上升 由於洩漏的自拍顯示器增加了以前價格實惠的相機系列的複雜性,富士 X-M5 的價格預期上升 Sep 07, 2024 am 09:34 AM

富士膠片粉絲最近對 X-T50 的前景感到非常興奮,因為它重新推出了預算導向的富士膠片 X-T30 II,該膠片在 1,000 美元以下的 APS-C 類別中非常受歡迎。不幸的是,隨著 Fujifilm X-T50 的推出

SpringBoot Session怎麼設定會話超時 SpringBoot Session怎麼設定會話超時 May 15, 2023 pm 02:37 PM

問題發(fā)現(xiàn)springboot專案生產(chǎn)session-out逾時問題,描述下問題:在測試環(huán)境透過改動application.yaml配置session-out,經(jīng)過設定不同時間驗證session-out配置生效,於是就直接設定了過期時間為8小時發(fā)布到了生產(chǎn)環(huán)境。然而中午接到客戶反應項目過期時間設定較短,半小時不操作就會話過期需要重複登陸。解決處理開發(fā)環(huán)境:springboot專案內建Tomcat,所以專案中application.yaml配置session-out是生效的。生產(chǎn)環(huán)境:生產(chǎn)環(huán)境發(fā)布是

session失效怎麼解決 session失效怎麼解決 Oct 18, 2023 pm 05:19 PM

session失效通常是由於 session 的生存時間過期或伺服器關閉導致的。其解決方法:1、延長session的生存時間;2、使用持久化儲存;3、使用cookie;4、非同步更新session;5、使用會話管理中介軟體。

Springboot2 session設定超時時間無效怎麼解決 Springboot2 session設定超時時間無效怎麼解決 May 22, 2023 pm 01:49 PM

問題:今天專案中遇到了一個設定時間逾時的問題,按SpringBoot2的application.properties變更一直不生效。解決方案:server.*屬性用於控制SpringBoot所使用的嵌入式容器。 SpringBoot將使用ServletWebServerFactory實例之一來建立servlet容器的執(zhí)行個體。這些類別使用server.*屬性來配置受控的servlet容器(tomcat,jetty等)。當應用程式作為war檔部署到Tomcat實例時,server.*屬性不適用。它們不適用,

PHP Session 跨域問題的解決方法 PHP Session 跨域問題的解決方法 Oct 12, 2023 pm 03:00 PM

PHPSession跨域問題的解決方法在前後端分離的開發(fā)中,跨域請求已成為常態(tài)。在處理跨域問題時,我們通常會涉及session的使用和管理。然而,由於瀏覽器的同源策略限制,跨域情況下預設無法共享session。為了解決這個問題,我們需要採用一些技巧和方法來實現(xiàn)session的跨域共享。一、使用cookie跨域共享session最常

Klipsch 推出 Flexus Core 300 旗艦條形音箱,支援 8K、12 個揚聲器和房間校正 Klipsch 推出 Flexus Core 300 旗艦條形音箱,支援 8K、12 個揚聲器和房間校正 Sep 05, 2024 am 10:16 AM

Klipsch Flexus Core 300 是該系列中的頂級型號,位於該公司條形音箱系列中現(xiàn)有的 Flexus Core 200 之上。根據(jù) Klipsch 的說法,這是世界上第一個聲音可以適應現(xiàn)實的條形音箱。

Redis的分享session應用如何實現(xiàn)簡訊登入 Redis的分享session應用如何實現(xiàn)簡訊登入 Jun 03, 2023 pm 03:11 PM

1.基於session實作簡訊登入1.1簡訊登入流程圖1.2實作發(fā)送簡訊驗證碼前端請求說明:說明請求方式POST請求路徑/user/code請求參數(shù)phone(電話號碼)回傳值無後端介面實作:@Slf4j@ ServicepublicclassUserServiceImplextendsServiceImplimplementsIUserService{@OverridepublicResultsendCode(Stringphone,HttpSessionsession){//1.校驗手機號碼if

飛傲CP13卡帶播放器上市,透明復古外觀 飛傲CP13卡帶播放器上市,透明復古外觀 Jun 16, 2024 am 09:52 AM

Fii OCP13 盒式錄音機於1 月發(fā)布。魅力,而且

See all articles