• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于PHP+Smarty的訂餐網(wǎng)站設(shè)計與實現(xiàn)

      2016-08-18 19:12:08張欣悅
      電腦知識與技術(shù) 2016年19期
      關(guān)鍵詞:模板

      張欣悅

      摘要:通過對訂餐網(wǎng)站的需求分析,給出了網(wǎng)站系統(tǒng)功能結(jié)構(gòu)圖,明確了系統(tǒng)開發(fā)中要采用模塊化的設(shè)計思想。網(wǎng)站選用B/S工作模式,用PHP+Apache+MYSQL+Smarty+PDO來開發(fā)系統(tǒng)。該文主要介紹了數(shù)據(jù)庫的設(shè)計、公共配置文件的設(shè)計和購物車模塊的關(guān)鍵代碼。

      關(guān)鍵詞:PHP;Smarty;模板

      中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2016)19-0058-02

      隨著互聯(lián)網(wǎng)的發(fā)展,人們在日常生活中通過網(wǎng)絡(luò)購物已經(jīng)非常普及,小到服裝,大到汽車、房子都可以通過互聯(lián)網(wǎng)來便捷購買。隨著互聯(lián)網(wǎng)網(wǎng)速的不斷升級,“互聯(lián)網(wǎng)+” 深深扎根于旅行、住宿、電影等生活服務(wù)類行業(yè),一臺電腦、一部智能手機(jī)就能代勞所有事情。2016年3月17日,上海市浦東新區(qū)市場監(jiān)督管理局正式向盒馬外賣頒發(fā)全國第一張“專業(yè)網(wǎng)絡(luò)訂餐許可證”,這意味著網(wǎng)上外賣正式進(jìn)入“許可證”時代。網(wǎng)絡(luò)訂餐是一個全新的業(yè)態(tài),明確了它的餐飲服務(wù)經(jīng)營范圍只能在互聯(lián)網(wǎng)領(lǐng)域。

      1 系統(tǒng)的功能分析

      一個完整的網(wǎng)絡(luò)訂餐系統(tǒng),除了要能夠展示賣家提供的所有商品以外,還需要根據(jù)商家的需求,能重點展示商家推薦的商品、套餐、最新商品、最近開展的促銷活動等功能;同時還要能夠滿足用戶分門別類的查詢各類商品、反饋意見給商家等個性化的需求。系統(tǒng)分為前臺頁面與后臺管理兩部分,前臺頁面主要是為點餐者 服務(wù),后臺主要為餐廳經(jīng)營者服務(wù)?;谝陨系恼{(diào)查分析,確立了本網(wǎng)站前臺所需要滿足的功能。網(wǎng)站前臺的整體功能結(jié)構(gòu)如圖 1所示:

      2 系統(tǒng)設(shè)計

      本系統(tǒng)采用 B/S 工作模式,選擇了PHP+Apache+MySQL來開發(fā)。以Windows7為開發(fā)平臺,以Apache為Web服務(wù)器,以MySQL為后臺數(shù)據(jù)庫。同時使用Smarty模板以及PDO數(shù)據(jù)庫連接層來搭建MVC結(jié)構(gòu)。系統(tǒng)界面使用 Dreamweaver 設(shè)計,采用DIV+CSS進(jìn)行布局,讓網(wǎng)站的表現(xiàn)和結(jié)構(gòu)分離,使用這種方式能在團(tuán)隊開發(fā)中更容易分工合作而減少相互關(guān)聯(lián)性。

      Smarty是一個用PHP寫出的模板引擎,它分離了邏輯代碼和外在的內(nèi)容,提供了一種易于管理和使用的方法,用來將原本與HTML代碼混雜在一起PHP代碼邏輯分離。,使程序員改變程序的邏輯內(nèi)容不會影響到美工的頁面設(shè)計,美工重新修改頁面不會影響到程序的程序邏輯,這在多人合作的項目中顯得尤為重要。PDO是PHP5.1以上版本附帶的數(shù)據(jù)庫連接層,作用是統(tǒng)一各種數(shù)據(jù)庫的訪問接口,與mysql和mysqli的函數(shù)庫相比,PDO讓跨數(shù)據(jù)庫的使用更具有親和力;與ADODB和MDB2相比,PDO更高效。

      2.1系統(tǒng)數(shù)據(jù)庫設(shè)計

      本網(wǎng)站根據(jù)需求,設(shè)計出能夠滿足用戶需求的各種實體以及他們之間的關(guān)系。其中,實體包括:用戶、商品、訂單等。通過對網(wǎng)上訂餐系統(tǒng)的內(nèi)容和數(shù)據(jù)流程分析,設(shè)計的數(shù)據(jù)項和數(shù)據(jù)結(jié)構(gòu)如下:

      用戶信息。包括的數(shù)據(jù)項有用戶姓名、用戶密碼、用戶手機(jī)號、用戶地址、訂購等。

      商品信息。包括的數(shù)據(jù)項有商品名稱、商品編號、商品類型、商品價格、商品折扣、商品庫存、商品上架時間等。

      留言信息。包括的數(shù)據(jù)項有用戶編號、留言標(biāo)題、留言內(nèi)容、留言時間等。

      活動信息。包括的數(shù)據(jù)項有活動名稱、活動時間、活動內(nèi)容、活動圖片等。

      訂單信息。包括的數(shù)據(jù)項有用戶編號、商品數(shù)量、添加時間、商品價格等。

      根據(jù)以上的數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)項建立數(shù)據(jù)庫。

      2.2 數(shù)據(jù)庫連接、管理類文件和Smarty模板配置類文件的設(shè)計

      1)選擇安裝Smarty的目錄。從安全性考慮,可以將Smarty安裝在web程序文檔目錄以外的地方,再將Smarty安裝目錄地址包含在PHP.INI文件中的include_path選項即可。

      同時,在\system目錄下,創(chuàng)建templates、templates_c、configs、cache目錄,用來放置模板文件、緩存文件等相關(guān)文件。

      2)在system目錄下,建立system.class.inc文件、system.inc文件和system.smarty.inc文件。其中system.smarty.inc.php 文件用來定義smarty模板類,指定各種文件的存儲位置;system.inc.php文件用來進(jìn)行數(shù)據(jù)庫連接、類的實例化;system.class.inc.php文件用來定義數(shù)據(jù)庫連接類和數(shù)據(jù)庫管理類。其中,system.inc.php的部分關(guān)鍵代碼如下:

      require("./system/system.smarty.inc.php"); //包含Smarty配置類

      require("./system/system.class.inc.php"); //包含數(shù)據(jù)庫連接和操作類

      $connobj=new ConnDB("mysql","localhost","root","123456","db_xd");//數(shù)據(jù)庫連接類實例化

      $conn=$connobj->GetConnId(); //執(zhí)行連接操作,返回連接標(biāo)識

      $admindb=new AdminDB();//數(shù)據(jù)庫操作類實例化

      $seppage=new SepPage();//分頁類實例化

      $usefun=new UseFun();//使用常用函數(shù)類實例化

      $smarty=new SmartyProject();//調(diào)用smarty模板

      function unhtml($params){

      extract($params);

      $text=$content;

      global $usefun;

      return $usefun->UnHtml($text);

      }

      $smarty->register_function("unhtml","unhtml"); //注冊模板函數(shù)

      ?>

      2.3 功能模塊的開發(fā)

      程序核心代碼采用 PHP 開發(fā)完成。網(wǎng)站設(shè)定游客可以在網(wǎng)頁上瀏覽各種餐飲,如果需要訂餐則必須要注冊為網(wǎng)站用戶,只有登錄成功后才能進(jìn)行餐飲預(yù)訂和使用購物車的功能。

      2.3.1會員注冊和登陸頁面設(shè)計

      本網(wǎng)站整體采用清爽簡潔的設(shè)計風(fēng)格。根據(jù)訂餐網(wǎng)站的特點,為了使網(wǎng)站易用,在用戶注冊時,必填的信息較少,只需要填寫用戶名、密碼、手機(jī)號和地址信息。同時,為了防止惡意注冊,在用戶注冊頁面使用了驗證碼功能。通過PHP隨機(jī)函數(shù)產(chǎn)生一個4位的隨機(jī)數(shù),再通過DG函數(shù)庫,將數(shù)字驗證碼轉(zhuǎn)換為圖片格式,然后使用函數(shù)創(chuàng)建一個背景圖片并增一些干擾元素,來防止驗證碼被OCR軟件識別。

      2.3.2商品展示頁面設(shè)計

      根據(jù)用戶點餐的特點以及用戶查詢餐飲的習(xí)慣,網(wǎng)站將餐飲的展示分為最新產(chǎn)品、熱門產(chǎn)品、套餐和產(chǎn)品名錄幾個頁面。每個頁面根據(jù)主題展示相應(yīng)的餐飲,同時,每種餐飲都有獨立的介紹頁面。在商品預(yù)訂時,通過SESSION記錄用戶的登陸狀態(tài),如果用戶沒有登陸則需要登陸后才能進(jìn)行商品預(yù)訂。

      2.3.3購物車設(shè)計

      訂餐網(wǎng)站的購物車類似于其他電商網(wǎng)站的購物車功能,用于存放用戶選擇的餐飲,同時記錄用戶所選餐飲的數(shù)量、價格、總結(jié)等相關(guān)信息。當(dāng)用戶進(jìn)入購物車頁面后,可以對餐飲的數(shù)量進(jìn)行修改;也可以將所選的產(chǎn)品移除出購物車。在對餐飲的品種、數(shù)量、價格等信息進(jìn)行確認(rèn)后,即可提交訂單。購物車功能的部分關(guān)鍵代碼如下:

      session_start();

      $member=$_SESSION['member'];

      if($member){

      $smarty->assign('member',$member);

      $scsql = "select * from shopping where username='".$member."' ";

      $scarr = $admindb->ExecSQL($scsql,$conn);

      if($scarr[0]['csell']==""){

      echo "

      ";

      echo "";

      }

      $n=0;

      $s=0;

      //print_r($scarr);

      //$res=$scarr->fetchAll(PDO::FETCH_ASSOC);

      for($i=0;$i

      $n=$n+$scarr[$i]['csell'];

      $s=$s+$scarr[$i]['csell']*$scarr[$i]['cprice'];

      }

      $smarty->assign('scarr',$scarr);

      $smarty->assign('n',$n);

      $smarty->assign('s',$s);

      $smarty->display("shopcar.tpl");

      }else{

      echo "";

      }

      3 結(jié)束語

      本網(wǎng)站主要實現(xiàn)了餐飲的分類查詢,用戶可以在網(wǎng)站上根據(jù)個人的需求來選擇相應(yīng)的餐飲或者套餐;能將所選的餐飲加入購物車,并能在購物車中修改訂餐信息;用戶能將個人意見反饋給網(wǎng)站管理員等實用的功能。本網(wǎng)站是基于PHP+Smarty開發(fā)完成的,可移植性好,具有模塊化開發(fā),分合靈活的特點。后期可以靈活的添加訂單跟蹤、預(yù)約送餐時間等功能,來進(jìn)一步完善本網(wǎng)站。

      參考文獻(xiàn):

      [1] 繆東東. 基于PHP 的高職院校學(xué)生考勤管理系統(tǒng)的研究[J]. 福建電腦,2013(10):127-129.

      [2] 陳書益,黃永慧.開源視頻服務(wù)器軟件MJPG-stream的應(yīng)用與研究[J].電子設(shè)計工程,2012,20(50):172-176.

      [3] 扎卡斯,姆克皮克.Ajax高級程序設(shè)計[M].徐鋒,譯.北京:人民郵電出版社,2008.

      猜你喜歡
      模板
      鋁模板在高層建筑施工中的應(yīng)用
      鋁模板在高層建筑施工中的應(yīng)用
      巧用思維模板 強(qiáng)化規(guī)律應(yīng)用
      Estimation of irrigation requirements for drip-irrigated maize in a sub-humid climate
      鋁模板在高層建筑施工中的應(yīng)用
      城市綜改 可推廣的模板較少
      孟村| 大方县| 万州区| 枣庄市| 上蔡县| 鹿泉市| 余干县| 邹城市| 洞口县| 天祝| 青州市| 盐城市| 肇源县| 图木舒克市| 休宁县| 满洲里市| 永吉县| 申扎县| 元谋县| 葫芦岛市| 饶阳县| 临朐县| 临湘市| 巨野县| 博野县| 襄城县| 岢岚县| 淮阳县| 富锦市| 县级市| 宜城市| 富顺县| 沅陵县| 察隅县| 砀山县| 南靖县| 习水县| 五台县| 昌乐县| 丘北县| 册亨县|