版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
PHP網(wǎng)站開發(fā)項(xiàng)目式教程(微課版)(第2版)任務(wù)7實(shí)現(xiàn)163郵箱寫郵件功能
寫郵件并發(fā)送郵件是郵箱項(xiàng)目的核心功能。接下來需要完成的任務(wù)如下。設(shè)計(jì)郵箱的主窗口界面。設(shè)計(jì)寫郵件的表單界面。設(shè)計(jì)添加附件的界面,實(shí)現(xiàn)附件的添加與刪除。實(shí)現(xiàn)發(fā)送郵件和系統(tǒng)退信功能。任務(wù)7-1設(shè)計(jì)郵箱主窗口界面
需要解決的核心問題如何在主窗口界面或?qū)戉]件界面的文本框中顯示用戶登錄時(shí)的賬號(hào)信息?如何使用JavaScript代碼獲取瀏覽器窗口的寬度?如何使用JavaScript代碼獲取浮動(dòng)框架內(nèi)部頁面文件的高度?瀏覽器窗口大小變化之后觸發(fā)的是哪個(gè)事件?
用戶登錄成功之后,打開的是一個(gè)包含浮動(dòng)框架子窗口界面的文件,在該文件內(nèi)部的浮動(dòng)框架子窗口中可以運(yùn)行寫郵件頁面文件、收郵件頁面文件、查閱郵件頁面文件及已刪除郵件頁面文件等。
本任務(wù)要設(shè)計(jì)的主窗口界面文件email.php就是登錄完成之后進(jìn)入的頁面,頁面的寬度始終與瀏覽器窗口的寬度保持一致,頁面效果如圖7-1所示。圖7-1
email.php文件運(yùn)行界面
圖7-1是在登錄界面中輸入正確的賬號(hào)和密碼后得到的頁面,該頁面的整體布局分為上下兩個(gè)區(qū)域,布局結(jié)構(gòu)如圖7-2所示。圖7-2
email.php的布局結(jié)構(gòu)
上面區(qū)域中的內(nèi)容除了用戶賬號(hào)信息會(huì)因?yàn)榈卿浻脩舨煌煌?,其他?nèi)容都是固定的。
下面區(qū)域又分為左右兩個(gè)部分,左邊是幾個(gè)固定的超鏈接,右邊設(shè)計(jì)了一個(gè)浮動(dòng)框架,浮動(dòng)框架的內(nèi)容將隨用戶所單擊的超鏈接的變化而變化,寫郵件、收郵件、閱讀郵件等操作都在浮動(dòng)框架中完成。
整個(gè)頁面功能的實(shí)現(xiàn)包含樣式代碼、頁面文件代碼和腳本代碼3個(gè)部分,分別對應(yīng)email.css、email.php和email.js這3個(gè)文件。7.1.1設(shè)計(jì)頂部區(qū)域1.整個(gè)區(qū)域的樣式說明
可將整個(gè)區(qū)域定義為一個(gè)盒子,這里采用類選擇符.wshdiv定義樣式,樣式要求如下。(1)寬度與邊距說明。頁面運(yùn)行之后,頁面寬度與瀏覽器窗口的寬度保持一致,而且需要隨著窗口大小的變化而變化,因此頂部區(qū)域的寬度需要取用瀏覽器窗口的寬度,具體做法是設(shè)置width為auto,左右邊距為0,上下邊距為0。(2)高度說明。高度直接定義為固定高度50px即可。(3)填充說明??紤]到頂部區(qū)域中的內(nèi)容與瀏覽器窗口上邊框和左右邊框之間要留有一定的空白,因此設(shè)置上填充為10px,下填充為0px,左右填充為10px。(4)邊框說明:頂部區(qū)域下方的橫線直接通過在類選擇符.wshdiv中定義下邊框來實(shí)現(xiàn),邊框?qū)挾葹?px,線型為實(shí)線,邊框顏色為#88f。2.區(qū)域內(nèi)部的元素說明
元素<divclass="wshdiv">內(nèi)部有靠左和靠右的兩部分內(nèi)容,靠左者使用向左浮動(dòng),靠右者使用向右浮動(dòng),分別使用類選擇符.wshleft和.wshright定義樣式。(1)類選擇符.wshleft的樣式要求:邊距為0,向左浮動(dòng),內(nèi)部文本字號(hào)為10pt。類名為wshleft的div內(nèi)容依次為:圖片163logo.gif、文本框、超鏈接。(2)類選擇符.wshright的樣式要求:向右浮動(dòng),邊距為0。類名為wshright的div內(nèi)容包括一個(gè)文本框和圖片search.png。3.設(shè)計(jì)頂部區(qū)域的代碼7.1.2設(shè)計(jì)左下部區(qū)域
左下部區(qū)域和右下部區(qū)域都包含在下方區(qū)域的大盒子中,下方的div使用類選擇符.bot定義樣式,具體樣式要求為:寬度為auto,高度為auto,填充為0,邊距為0。1.左下部區(qū)域的樣式與功能說明
可將整個(gè)左下部區(qū)域設(shè)計(jì)為一個(gè)div,采用ID選擇符#leftdiv定義樣式,具體樣式要求為:寬度為200px,高度為600px,填充為0,邊距為0,右邊框和下邊框?qū)挾葹?px,線型為實(shí)線,邊框顏色為#aaf,背景色為#eef,向左浮動(dòng)。2.設(shè)計(jì)左下部區(qū)域的代碼(1)樣式代碼。(2)頁面內(nèi)容代碼。7.1.3設(shè)計(jì)右下部區(qū)域1.整個(gè)右下部區(qū)域的設(shè)計(jì)要求
可將整個(gè)區(qū)域設(shè)計(jì)為一個(gè)div,使用類選擇符.maindiv定義樣式。這個(gè)區(qū)域的寬度與高度都不是固定的,寬度要用區(qū)域中浮動(dòng)框架窗口的寬度,高度要用浮動(dòng)框架內(nèi)部加載的頁面的高度,寬度和高度的設(shè)置都需要通過腳本來實(shí)現(xiàn)。
類選擇符.maindiv具體的樣式要求為:寬度和高度都是auto,填充為0,邊距為0,向左浮動(dòng)。
元素<divclass="maindiv">的內(nèi)容是浮動(dòng)框架,浮動(dòng)框架的name和id屬性取值都為main,初始高度和寬度都為auto。在頁面運(yùn)行時(shí),使用腳本函數(shù)設(shè)置相應(yīng)的高度和寬度取值,邊框設(shè)置為0,滾動(dòng)條為no,初始加載的頁面文件是writeemail.php。2.設(shè)置右下部區(qū)域的樣式代碼和頁面代碼(1)樣式代碼。(2)頁面代碼。3.設(shè)置浮動(dòng)框架的寬度
整個(gè)郵箱主窗口界面的寬度始終與瀏覽器窗口寬度保持一致,在元素<divclass="bot">的內(nèi)部,左側(cè)元素<divid="leftdiv">的總寬度固定為201px,右側(cè)元素<divclass="maindiv">的寬度為auto,因此要求在元素<divclass="maindiv">內(nèi)部的浮動(dòng)框架的寬度必須能夠適應(yīng)瀏覽器窗口的變化。若窗口變寬,浮動(dòng)框架就要變寬,若窗口變窄,浮動(dòng)框架就要變窄,從而做到由浮動(dòng)框架窗口的寬度來決定元素<divclass="maindiv">的寬度。
具體實(shí)現(xiàn)方法是:用瀏覽器窗口寬度減去元素<divid=
"leftdiv">的總寬度201px,將結(jié)果作為浮動(dòng)框架的寬度。4.設(shè)置浮動(dòng)框架的高度
在一個(gè)使用了浮動(dòng)框架子窗口的頁面中,因?yàn)榧虞d到浮動(dòng)框架中的頁面高度并不固定,所以要求浮動(dòng)框架的高度能隨著加載進(jìn)來的頁面內(nèi)容高度的變化而變化,這樣能夠避免出現(xiàn)以下兩個(gè)問題。(1)若浮動(dòng)框架初始高度小于加載進(jìn)來的頁面內(nèi)容高度,則內(nèi)部需要出現(xiàn)滾動(dòng)條,因此會(huì)存在“內(nèi)外雙滾動(dòng)”情況,影響頁面的美觀。(2)若浮動(dòng)框架初始高度大于加載進(jìn)來的頁面內(nèi)容高度,則浮
動(dòng)框架底部頁面內(nèi)容下方將出現(xiàn)大片的空白區(qū)域,也會(huì)影響頁面的美觀。7.1.4email.php的完整代碼任務(wù)7-2實(shí)現(xiàn)寫郵件頁面功能
需要解決的核心問題如何保證表單元素的寬度能夠自適應(yīng)窗口寬度?如何根據(jù)文本區(qū)域中內(nèi)容的多少動(dòng)態(tài)決定滾動(dòng)條的顯示與隱藏?如何實(shí)現(xiàn)某個(gè)div根據(jù)指定操作動(dòng)態(tài)顯示或隱藏?
本任務(wù)實(shí)現(xiàn)的寫郵件功能不包含附件的添加與刪除,只是設(shè)計(jì)包含發(fā)件人、收件人、主題、內(nèi)容等信息以及“發(fā)送”和“取消”等按鈕的表單界面,效果如圖7-3所示。圖7-3
寫郵件界面7.2.1布局、樣式及頁面元素插入1.頁面的布局及元素樣式定義
將整個(gè)頁面的邊距設(shè)置為0。
整個(gè)頁面使用的div及其排列關(guān)系如圖7-4所示。圖7-4
寫郵件界面使用的div及其排列關(guān)系(1)類選擇符.write。
樣式定義要求:寬度為120px,高度為20px,填充為0,邊距為0,背景圖片為writebg.jpg,字號(hào)為10pt,文本在水平方向居中對齊,文本行高為20px(該行高用于設(shè)置文本垂直方向居中對齊)。(2)類選擇符.butdivsh。
樣式定義要求:寬度為auto(該div的寬度與浮動(dòng)框架窗口寬度一致,通過設(shè)置寬度為auto來實(shí)現(xiàn)),高度為28px,上填充為8px,左右填充為10px,下填充為0,邊距為0,背景為淺灰色#eee,下邊框?yàn)?px、#aaf顏色的實(shí)線。
元素<divclass="butdivsh">的內(nèi)部包含5個(gè)按鈕,“發(fā)送”按鈕為submit類型,“取消”按鈕為reset類型,其他3個(gè)按鈕都是button類型,所有按鈕的樣式定義要求為:高度為25px,文本字號(hào)為10pt。(3)類選擇符.divcont。
樣式定義要求:寬度為auto(該div的寬度與浮動(dòng)框架窗口寬度一致),高度為auto(高度根據(jù)內(nèi)部表單元素的總高度來確定),填充為0,上下邊距為10px,左右邊距為0。
元素<divclass="divcont">的內(nèi)部包含橫向排列的3個(gè)div,分別使用ID選擇符#wdiv、#zhedie和#rdiv定義樣式。
ID選擇符#wdiv:寬度為300px(初始設(shè)為300px,后面需要使用腳本函數(shù)重新設(shè)置,以保證其能夠隨著窗口寬度的變化而變化,使用腳本設(shè)置元素寬度之后,可以將樣式中#wdiv的寬度修改為auto),高度為auto,填充為0,邊距為0,向左浮動(dòng)。
元素<divid="wdiv">的內(nèi)部使用4行2列的表格排列發(fā)件人、收件人、主題和內(nèi)容4個(gè)表單元素。
表格寬度需要與元素<divid="wdiv">的寬度一致,因此設(shè)置為100%。單元格內(nèi)容不允許換行,這是為了保證用戶將窗口調(diào)整為非常窄之后,顯示在左側(cè)列中的提示文本不會(huì)被換行,這需要為表格標(biāo)簽<table>設(shè)置樣式代碼table-layout:fixed;來實(shí)現(xiàn)。
表格所有單元格中的文本字號(hào)都是10pt,文本在垂直方向頂端對齊;表格左側(cè)列寬度為60px,文本在水平方向靠右對齊;表格右側(cè)列寬度為auto(在左側(cè)列寬度固定的基礎(chǔ)上,必須設(shè)置右側(cè)列寬度為auto,才能保證表格總寬度適應(yīng)父元素<divid="wdiv">寬度的變化,最終適應(yīng)瀏覽器窗口寬度的變化)。(4)類選擇符.butdivx。
樣式定義要求:寬度為auto(該div的寬度與浮動(dòng)框架窗口寬度一致,設(shè)置寬度為auto來實(shí)現(xiàn)),高度為28px,上填充為8px,左右填充為10px,下填充為0,邊距為0,背景顏色為淺灰色#eee,上邊框?yàn)?px、#aaf顏色的實(shí)線。
元素<divclass="butdivxia">的內(nèi)部包含的所有按鈕的樣式定義要求:高度為25px,文本字號(hào)為10pt。2.樣式代碼7.2.2實(shí)現(xiàn)腳本功能
在寫郵件界面中需要使用腳本函數(shù)實(shí)現(xiàn)表單數(shù)據(jù)驗(yàn)證、id為content的文本區(qū)域中滾動(dòng)條的顯示與隱藏、表單元素的寬度設(shè)置、元素<divid="rdiv">的顯示與隱藏等功能。1.函數(shù)validate()的定義與調(diào)用
用戶單擊“發(fā)送”按鈕發(fā)送郵件時(shí),系統(tǒng)需要先判斷用戶是否輸入了收件人和郵件主題信息。若沒有輸入收件人信息,則在id為receiver的“收件人”文本框中顯示紅色提示信息“必須要填寫收件人信息”,同時(shí)返回false結(jié)果,用于結(jié)束函數(shù)的執(zhí)行,并阻止發(fā)送郵件的過程,效果如圖7-5所示;若沒有輸入郵件主題信息,則在id為subject的“主題”文本框中顯示紅色提示信息“必須要填寫郵件主題”,同時(shí)返回false結(jié)果,用于結(jié)束函數(shù)的執(zhí)行,并阻止發(fā)送郵件的過程,效果如圖7-6所示。圖7-5
未填寫收件人信息的頁面效果
圖7-6
未填寫主題的頁面效果2.函數(shù)wdivWidth()的定義與調(diào)用
元素<divid="wdiv">的寬度在初始狀態(tài)被設(shè)置為300px,該元素及其內(nèi)部id為receiver、subject和content的表單元素的寬度都要求能夠適應(yīng)頁面文件writeemail.php的寬度,并且要實(shí)現(xiàn)在單擊id為zhedieImg的折疊圖片元素時(shí),能夠根據(jù)右側(cè)元素<divid="rdiv">的顯示與隱藏狀態(tài)來改變自己的寬度。
若元素<divid="rdiv">為顯示狀態(tài),則元素<divid="wdiv">的寬度需要設(shè)置為頁面寬度減去元素<divid="rdiv">和<divid="zhedie">的寬度之后得到的結(jié)果。
若元素<divid="rdiv">為隱藏狀態(tài),則元素<divid="wdiv">的寬度需要設(shè)置為頁面的寬度減去元素<divid="zhedie">的寬度之后得到的結(jié)果。
id為receiver、subject和content的表單元素的寬度需要使用元素<divid="wdiv">的寬度減去表格左側(cè)列寬60px以及表單元素的左右邊框2px之后得到。3.函數(shù)showOrHideRdiv()的定義與調(diào)用
若元素<divid="rdiv">為隱藏的,則單擊圖片元素<imgid="zhedieImg">之后,要將元素<divid="rdiv">設(shè)置為顯示狀態(tài),同時(shí)要將圖片元素<imgid="zhedieImg">顯示的圖片文件修改為zhedieright.jpg;否則要將元素<divid="rdiv">設(shè)置為隱藏狀態(tài),同時(shí)要將圖片元素<imgid="zhedieImg">顯示的圖片文件修改為zhedieleft.jpg。
定義函數(shù)showOrHideRdiv()實(shí)現(xiàn)上述功能。4.函數(shù)showOrHideScroll()的定義與調(diào)用
為了使設(shè)計(jì)的頁面比較美觀,要求在任何瀏覽器中運(yùn)行頁面文件writeemail.php時(shí),文本區(qū)域中的滾動(dòng)條在初始狀態(tài)都要隱藏。在除了IE之外的當(dāng)前的各種主流瀏覽器中顯示文本區(qū)域時(shí),默認(rèn)初始狀態(tài)的滾動(dòng)條都是隱藏的,當(dāng)文本區(qū)域中的內(nèi)容超出了指定的行數(shù)范圍之后,滾動(dòng)條會(huì)自動(dòng)顯示。5.函數(shù)stopscrollTm()的定義與調(diào)用
編輯郵件內(nèi)容時(shí),使用window對象的定時(shí)器函數(shù)setTimeout()設(shè)置每間隔100ms就要調(diào)用函數(shù)showOrHideScroll(),這個(gè)定時(shí)器函數(shù)一旦調(diào)用就會(huì)一直運(yùn)行下去,直到采用相應(yīng)的函數(shù)來結(jié)束它,為了停止定時(shí)器函數(shù)的循環(huán)定時(shí)過程,減少系統(tǒng)的耗能,這里定義函數(shù)stopscrollTm()來結(jié)束定時(shí)器函數(shù)。7.2.3完整的writeemail.php代碼任務(wù)7-3添加附件
需要解決的核心問題如何設(shè)計(jì)用于添加10個(gè)附件的10組元素?繼續(xù)添加附件時(shí),應(yīng)采取怎樣的原則找出一個(gè)未使用的文件域元素?顯示新元素之后,頁面的高度和寬度需要怎樣變化?刪除附件時(shí),如何處理文件域元素?刪除附件之后,頁面的高度和寬度需要怎樣變化?
浮動(dòng)框架內(nèi)部的頁面文件如何調(diào)用父窗口的頁面文件中的腳本函數(shù)?添加附件功能的實(shí)現(xiàn)包括用于添加附件的初始界面設(shè)計(jì)、繼續(xù)添加附件、刪除已添加附件等幾個(gè)方面功能的實(shí)現(xiàn)過程。7.3.1界面設(shè)計(jì)1.界面設(shè)計(jì)說明
修改writeemail.php文件,在郵件主題信息下面增加一行表格的單元格,用于添加附件。
頁面代碼剛剛運(yùn)行時(shí),顯示一個(gè)選擇附件的文件域元素,界面如圖7-7所示。
單擊圖7-7所示界面右下方的“刪除”時(shí),可以將已經(jīng)選擇的附件信息刪除,但是要保留文件域元素。若需要添加多個(gè)附件,則可以單擊“繼續(xù)添加附件”,得到圖7-8所示的界面。圖7-7
添加附件界面
圖7-8
添加多個(gè)附件界面
單擊圖7-8所示界面中的第二個(gè)文件域右側(cè)的“刪除”時(shí),要將已經(jīng)選擇的附件信息刪除,同時(shí)將文件域元素隱藏。
本頁面要求最多可以添加10個(gè)附件,采用的方案是在初始狀態(tài)設(shè)計(jì)好10組元素,每組元素的內(nèi)容和結(jié)構(gòu)為<p><span>文件域元素</span><span>刪除</span></p>。2.樣式定義要求及樣式代碼(1)樣式定義要求。
文件域元素的樣式使用類選擇符.attachmsg定義,寬度為auto,高度為25px,填充為0,邊距為0。
“刪除”文本元素的樣式使用類選擇符.del定義,文本顏色為藍(lán)色,帶下畫線,鼠標(biāo)指針指向時(shí)顯示為手狀。
“繼續(xù)添加附件”文本元素的樣式使用類選擇符.add定義,文本顏色為藍(lán)色,帶下畫線,鼠標(biāo)指針指向時(shí)顯示為手狀,文本行高為30px。
控制10組元素的段落標(biāo)簽使用包含選擇符.tdrightp定義樣式,下邊距為5px,其余邊距為0,初始狀態(tài)為隱藏。
設(shè)置id是p1的段落的初始狀態(tài)為顯示。(2)樣式代碼。3.頁面元素代碼
在任務(wù)4-3中提到,上傳文件時(shí),除了要增加文件域元素外,還必須設(shè)置表單標(biāo)簽<form>內(nèi)部的相關(guān)屬性。修改writeemail.php文件,在<form>標(biāo)簽中增加代碼enctype="multipart/form-data",然后在郵件主題信息行對應(yīng)代碼之后插入代碼。7.3.2使用腳本實(shí)現(xiàn)多附件添加和刪除附件功能1.多附件添加
在頁面中添加多個(gè)附件時(shí),需要單擊文本“繼續(xù)添加附件”,以顯示用于添加附件的文件域元素,每單擊一次,就從尚未使用的文件域元素中找出序號(hào)最小的那個(gè)顯示出來。同時(shí)因?yàn)槲募蛟氐娘@示使得頁面內(nèi)容增高,所以需要調(diào)整頁面中元素<divid="rdiv">的高度、<divid="zhedie">的上填充以及整個(gè)浮動(dòng)框架子窗口的高度。定義腳本函數(shù)addAttach()來實(shí)現(xiàn)上述功能。2.刪除附件
單擊第一個(gè)文件域元素右側(cè)的“刪除”時(shí),將選擇的附件信息刪除;而單擊第二個(gè)及之后那些文件域元素右側(cè)的“刪除”時(shí),除了刪除選擇的附件信息,還必須將文件域所在的段落元素隱藏。同時(shí)因?yàn)轫撁鎯?nèi)容高度減小,所以還需要調(diào)整頁面中元素<divid="rdiv">的高度、元素<divid="zhedie">的上填充以及整個(gè)浮動(dòng)框架子窗口的高度。任務(wù)7-4發(fā)送郵件
需要解決的核心問題數(shù)據(jù)表emailmsg中保存了哪些信息?使用哪一列區(qū)分每條記錄?一封郵件的附件信息在數(shù)據(jù)表中如何保存?一個(gè)附件文件在服務(wù)器文件夾中如何保存?如何解決同名附件沖突的問題?保存郵件信息時(shí)設(shè)計(jì)插入語句需要注意什么問題?explode()函數(shù)的作用是什么?需要幾個(gè)參數(shù)?返回結(jié)果是什么?
如何判斷指定的收件人賬號(hào)在usermsg表中是否存在?如何實(shí)現(xiàn)系統(tǒng)退信?郵件編輯完成,單擊“發(fā)送”按鈕時(shí)必須將郵件信息存入數(shù)據(jù)庫,若郵件包含附件,則還需要將附件保存到文件夾upload中,這樣,發(fā)送一封郵件的過程才算結(jié)束。7.4.1創(chuàng)建數(shù)據(jù)表emailmsg1.?dāng)?shù)據(jù)表結(jié)構(gòu)說明
在數(shù)據(jù)庫email中創(chuàng)建的數(shù)據(jù)表emailmsg專門用于存放郵件信息,為了方便實(shí)現(xiàn)所有郵箱相關(guān)功能,可將所有用戶發(fā)送的所有郵件信息都存儲(chǔ)在數(shù)據(jù)表emailmsg中。數(shù)據(jù)表的列名、長度等結(jié)構(gòu)要求如表7-1所示。保存的信息列名類型和長度是否允許為空其他郵件序號(hào)emailnoint(10)notnull自動(dòng)增長,主鍵發(fā)件人賬號(hào)sendervarchar(30)notnull
收件人賬號(hào)receivervarchar(1000)notnull
郵件主題subjectvarchar(200)notnull
郵件內(nèi)容contenttext
收發(fā)日期datesorrdatetimenotnull
附件名稱信息attachmentvarchar(1000)
是否刪除郵件deletedtinyint(1)notnull初始值為0是否閱讀郵件readflagvarchar(1000)
表7-1
數(shù)據(jù)表emailmsg的結(jié)構(gòu)要求2.創(chuàng)建數(shù)據(jù)表
創(chuàng)建create_emailmsg.php文件,在連接MySQL成功并打開數(shù)據(jù)庫email之后,定義SQL語句,創(chuàng)建數(shù)據(jù)表emailmsg,若創(chuàng)建成功,則輸出“數(shù)據(jù)表emailmsg創(chuàng)建成功”,否則輸出“數(shù)據(jù)表emailmsg創(chuàng)建失敗”。7.4.2保存郵件信息
創(chuàng)建頁面文件storeemail.php,用于保存郵件信息,修改writeemail.php文件,在<form>標(biāo)簽中設(shè)置action="storeemail.
php"關(guān)聯(lián)該文件。1.storeemail.php實(shí)現(xiàn)的功能的步驟說明第1步,要獲取郵件的全部信息,包括發(fā)件人、收件人、主題、內(nèi)容、收發(fā)日期和附件信息。第2步,獲取并處理附件信息,將附件文件保存在與storeemail.
php文件同級(jí)的文件夾upload中,同時(shí)準(zhǔn)備好要保存到數(shù)據(jù)表emailmsg的附件信息列attachment中的信息。
本書任務(wù)中實(shí)現(xiàn)的是簡單的保存附件的操作,所有用戶發(fā)送的郵件中的附件文件都保存在同一個(gè)upload文件夾中。為了盡可能避免不同用戶發(fā)送的同名附件互相沖突,在將附件保存到upload文件夾之前,由系統(tǒng)產(chǎn)生一個(gè)0~100000的隨機(jī)數(shù),將該隨機(jī)數(shù)放入圓括號(hào)內(nèi),放在附件名稱開始的位置,如(89345)a.doc,然后將新組成的名稱作為附件名稱保存到文件夾upload中。
保存在attachment列中的附件名稱信息包含3個(gè)部分的內(nèi)容,分別是在開始處增加的放在圓括號(hào)中的隨機(jī)數(shù)標(biāo)識(shí)、附件名稱和在結(jié)束處放在圓括號(hào)中的大小信息,最后再加上一個(gè)分號(hào),如(89345)a.doc(2.1kB);。在保存之前,需要將這3個(gè)部分的內(nèi)容連接在一起并以分號(hào)結(jié)束;若同時(shí)有多個(gè)附件,則將所有附件信息連接在一起放在attachment列中,如(89345)a.doc(2.1kB);(6537)b.png(203.5kB);。第3步,將所有信息保存到數(shù)據(jù)表emailmsg中。2.storeemail.php文件代碼7.4.3實(shí)現(xiàn)系統(tǒng)退信功能
在發(fā)送郵件之后,若郵件中指定的某個(gè)接收者賬號(hào)在usermsg表的emailaddr列中不存在,則系統(tǒng)應(yīng)該自動(dòng)給發(fā)送方退信,用于提示發(fā)送方所發(fā)送的郵件并沒有真正發(fā)送成功。1.系統(tǒng)退信功能實(shí)現(xiàn)說明
因?yàn)榘l(fā)送方發(fā)送郵件時(shí)指定的接收者可能是多個(gè)用戶,對這些使用英文分號(hào)連接在一起的賬號(hào),首先要使用英文分號(hào)作為分隔符,將它們一個(gè)個(gè)分離,然后使用循環(huán)結(jié)構(gòu)分別判斷其是否是已經(jīng)注冊過的賬號(hào)。
另外,因?yàn)榻邮照哔~號(hào)信息中包含“@163.com”,而存放用戶賬號(hào)信息的usermsg表中的emailaddr列值內(nèi)并不包含“@163.com”,所以在判斷某個(gè)接收者賬號(hào)是否存在之前,必須將賬號(hào)信息中包含的“@163.com”信息截取掉。
無論是要分割字符串信息,還是要截取字符串信息,都需要使用字符串分割函數(shù)explode()來完成。2.字符串分隔函數(shù)ex
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 如皋農(nóng)村婚慶酒店合同范例
- 出租集裝箱租賃合同范例
- 商洛房屋出售合同范例
- 政府醫(yī)療采購合同范例
- 嫁接樹木合同范例
- 燈飾開關(guān)銷售合同范例
- 廢品金屬回收合同范例
- 個(gè)人高額借錢合同范例
- 銅仁幼兒師范高等??茖W(xué)?!稊?shù)據(jù)庫原理及應(yīng)用SQL-Server》2023-2024學(xué)年第一學(xué)期期末試卷
- 完整版100以內(nèi)加減法混合運(yùn)算4000道129
- 2022年注冊消防工程師繼續(xù)教育測試題
- 2024年《高等教育心理學(xué)》教師崗前培訓(xùn)考試復(fù)習(xí)題庫(含答案)
- 船舶電氣設(shè)計(jì)
- 七年級(jí)歷史上冊第一學(xué)期期末綜合測試卷(人教版 2024年秋)
- 2024年首屆全國“紅旗杯”班組長大賽考試題庫800題(含答案)
- CJJ101-2016 埋地塑料給水管道工程技術(shù)規(guī)程
- 2024河北石油職業(yè)技術(shù)大學(xué)教師招聘考試筆試試題
- 2022-2023學(xué)年廣東省廣州市增城區(qū)教科版(廣州)六年級(jí)上冊期末測試英語試卷(含聽力音頻) 【帶答案】
- 2024-2030年中國七氟丙烷行業(yè)市場現(xiàn)狀調(diào)查及發(fā)展前景研判報(bào)告
- GB/T 43868-2024電化學(xué)儲(chǔ)能電站啟動(dòng)驗(yàn)收規(guī)程
- 人際傳播能力智慧樹知到期末考試答案章節(jié)答案2024年復(fù)旦大學(xué)
評論
0/150
提交評論