會(huì)員注冊(cè)的實(shí)現(xiàn)_第1頁(yè)
會(huì)員注冊(cè)的實(shí)現(xiàn)_第2頁(yè)
會(huì)員注冊(cè)的實(shí)現(xiàn)_第3頁(yè)
會(huì)員注冊(cè)的實(shí)現(xiàn)_第4頁(yè)
會(huì)員注冊(cè)的實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩10頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

會(huì)員注冊(cè)的結(jié)構(gòu)一、 設(shè)計(jì)數(shù)據(jù)庫(kù)二、 會(huì)員注冊(cè)界面設(shè)計(jì)三、 會(huì)員注冊(cè)的功能實(shí)現(xiàn)(一)檢測(cè)帳號(hào)檢測(cè)帳號(hào)分為兩種方式:1、用戶輸入帳號(hào)后立即檢測(cè)檢測(cè)程序流程:(1) 判斷用戶帳號(hào)文本框是否為空(2)清除用戶輸入的無(wú)效字符(3)調(diào)用檢測(cè)用戶帳號(hào)的方法檢測(cè)用戶帳號(hào)是否已被注冊(cè)2、用戶單擊注冊(cè)按鈕后檢測(cè)(二) 會(huì)員注冊(cè)四、 會(huì)員注冊(cè)驗(yàn)證的實(shí)現(xiàn)(一)非空驗(yàn)證(二)比較驗(yàn)證(三) 控制最大字符數(shù)(四)正則表達(dá)式驗(yàn)證會(huì)員注冊(cè)用到的方法序號(hào)名稱編寫文件作用1Cleanlnput()Register.aspx.es清除無(wú)效字符2DetectionAccount()gh.es檢測(cè)用戶帳號(hào)是否已被注冊(cè)3ExecReaderNum()gh.es讀取一個(gè)整數(shù)4AddUser()gh.es添加會(huì)員5ExecData()gh.es修改數(shù)據(jù)6Encrypt()gh.es數(shù)據(jù)加密會(huì)員注冊(cè)的實(shí)現(xiàn)在互聯(lián)網(wǎng)上,許多網(wǎng)站采用了會(huì)員制,用戶注冊(cè)后成為一名會(huì)員,可以行使會(huì)員的權(quán)力。在此,我以一名網(wǎng)站制作者的身份,來(lái)介紹會(huì)員注冊(cè)的實(shí)現(xiàn)。實(shí)現(xiàn)會(huì)員注冊(cè),首先是設(shè)計(jì)數(shù)據(jù)庫(kù),然后設(shè)計(jì)會(huì)員注冊(cè)界面,最后編寫會(huì)員注冊(cè)的方法和驗(yàn)證。一、設(shè)計(jì)數(shù)據(jù)庫(kù)在數(shù)據(jù)庫(kù)中設(shè)計(jì)一個(gè)會(huì)員表,用于存儲(chǔ)會(huì)員數(shù)據(jù)。會(huì)員表包含四個(gè)項(xiàng)目:會(huì)員編號(hào)、會(huì)員帳號(hào)、登錄密碼和會(huì)員郵箱。會(huì)員編號(hào)作為會(huì)員的序號(hào),添加會(huì)員時(shí)自動(dòng)生成;會(huì)員帳號(hào)是會(huì)員的標(biāo)識(shí),要惟一,設(shè)置為會(huì)員表的主鍵;登錄密碼是會(huì)員登錄時(shí)的驗(yàn)證碼;會(huì)員郵箱作為網(wǎng)站與會(huì)員聯(lián)系的一種途徑,網(wǎng)站可以將相關(guān)信息發(fā)到會(huì)員郵箱中。會(huì)員表的結(jié)構(gòu)如表1-1所示。表1-1tusers列名數(shù)據(jù)類型長(zhǎng)度說(shuō)明t_usersint41?會(huì)員編號(hào)(標(biāo)識(shí):是)usernamevarchar502?會(huì)員帳號(hào)(主鍵)passwordvarchar2003.登錄密碼eMailvarchar504.會(huì)員郵箱注:t_users的標(biāo)識(shí)值為是,標(biāo)識(shí)種子為1,標(biāo)識(shí)遞增量為1。會(huì)員注冊(cè)界面設(shè)計(jì)在網(wǎng)站根目錄下新建一個(gè)文件夾member,member用于放置會(huì)員注冊(cè)的網(wǎng)頁(yè)和會(huì)員的其他網(wǎng)頁(yè)。在member中添加一個(gè)Web窗體Register.aspx,Register.aspx為會(huì)員注冊(cè)的網(wǎng)頁(yè)。在窗體Register.aspx中設(shè)計(jì)會(huì)員注冊(cè)的界面。會(huì)員注冊(cè)界面內(nèi)容:1、標(biāo)題標(biāo)題為會(huì)員注冊(cè)2、用戶輸入項(xiàng)目用戶輸入內(nèi)容分為四項(xiàng):(1)用戶帳號(hào)(2) 登錄密碼(3) 確認(rèn)密碼(4) 電子郵箱每個(gè)項(xiàng)目包括標(biāo)簽、文本框、標(biāo)注和驗(yàn)證控件。為了在用戶輸入帳號(hào)后立即檢測(cè),在用戶帳號(hào)的文本框后放置一個(gè)按鈕控件。3、注冊(cè)按鈕注冊(cè)按鈕用于用戶單擊按鈕完成注冊(cè)。會(huì)員注冊(cè)界面如圖1-1所示。會(huì)員注冊(cè)嚴(yán)為必填項(xiàng))塚用戶帳號(hào):需檢測(cè)帳號(hào)]可由420位英文宇母,數(shù)宇或下劃線組成WF帳號(hào)格貳F正確■:. °塚鱉錄密碼:E豊錄密碼格式不正確‘:?可由E-2Q位英文字母、數(shù)字或下劃線組成塚踴認(rèn)密碼:IE蓿重新輸入密碼塚電子郵箱:惰填寫有效且常用的曲地址肯輸人正確的電子郵箱!F注 冊(cè)|ro/UserName]rf/Password]rf/E.ePassword'缶EMail]?錯(cuò)誤信息1。?錯(cuò)誤信息2。圖1-1會(huì)員注冊(cè)界面三、會(huì)員注冊(cè)的實(shí)現(xiàn)(一)檢測(cè)帳號(hào)會(huì)員帳號(hào)在同一個(gè)會(huì)員系統(tǒng)中是不能重復(fù)的,為了保證會(huì)員帳號(hào)惟一,設(shè)置檢測(cè)帳號(hào)的功能。檢測(cè)帳號(hào)分為兩種方式:1、用戶輸入帳號(hào)后立即檢測(cè)在用戶帳號(hào)的文本框后面放置一個(gè)按鈕,在按鈕的單擊事件btnJczh_Click中編寫代碼檢測(cè)用戶輸入的帳號(hào)是否已經(jīng)被注冊(cè)了。檢測(cè)程序流程:(1)判斷用戶帳號(hào)文本框是否為空如果用戶帳號(hào)文本框不是空的,則執(zhí)行(2)和(3)。如果用戶帳號(hào)文本框是空的,則提示用戶輸入用戶帳號(hào)。代碼如代碼清單1-1所示。代碼清單1-1檢測(cè)用戶帳號(hào)//檢測(cè)帳號(hào)是否已被注冊(cè)protectedvoidbtnJczh_Click(objectsender,EventArgse){//1.判斷用戶帳號(hào)的文本框是否為空,如果用戶帳號(hào)的文本框不為空。if(txtusername.Text!=""){//2.清除用戶輸入的無(wú)效字符txtusername.Text=CleanInput(txtusername.Text.Trim());//3.調(diào)用檢測(cè)用戶帳號(hào)的方法,檢測(cè)用戶帳號(hào)是否已被注冊(cè)。num=gh1.DetectionAccount(txtusername.Text.Trim());if(num>0)//num>0表示用戶輸入的帳號(hào)已被注冊(cè){txtusername.Text="";Response.Write("<script>alert('抱歉,此帳號(hào)已被其他用戶使用!’);</script>");}else{Response.Write("<script>alert('恭喜你!此帳號(hào)可用!');</script>");}}else//用戶帳號(hào)的文本框?yàn)榭?,提示用戶輸入用戶帳?hào)。{Response.Write("<script>alert('請(qǐng)輸入用戶帳號(hào)!');</script>");}}if(txtusername.Text!="")判斷用戶帳號(hào)文本框是否為空,如果if成立則表示用戶帳號(hào)文本框不是空的。else表示用戶帳號(hào)文本框是空的,Response.Write("<script>alert('請(qǐng)輸入用戶帳號(hào)!');</script>")提示用戶輸入用戶帳號(hào)。(2)清除用戶輸入的無(wú)效字符如果用戶在用戶帳號(hào)文本框中輸入了數(shù)據(jù),為了避免無(wú)效數(shù)據(jù),使用清除無(wú)效字符的方法清除無(wú)效字符。在代碼清單1-1中txtusername.Text=CleanInput(txtusername.Text.Trim());是清除用戶帳號(hào)文本框txtusername的無(wú)效字符。無(wú)效字符是指除英文字母、數(shù)字和下劃線之外的字符。Cleanlnput()是清除無(wú)效字符的方法。Cleanlnput()方法的代碼如代碼清單1-2所示。代碼清單1-2清除無(wú)效字符的方法CleanInput()///<summary>///清除無(wú)效字符///</summary>///<paramname二"strln">字符串</param>///<returns〉有效字符串</returns>StringCleanInput(stringstrIn){//空字符串替換無(wú)效字符。returnRegex.Replace(strln,@"「\w]","");}strIn是需要清除的字符串,return返回清除后的字符串。Regex.Replace()是清除的方法,其中Regex表示不可變的正則表達(dá)式,Replace是替換字符的方法。「\w]是正則表達(dá)式定義的字符模式,表示非數(shù)字、英文字母和下劃線的字符串。""是空字符串。Regex.Replace(strln,@"「\w]","")就是用空字符串替換非數(shù)字、英文字母和下劃線的字符串,即用空字符串替換無(wú)效字符。使用類Regex需要導(dǎo)入名稱空間System.Text.RegularExpressions。(3)調(diào)用檢測(cè)用戶帳號(hào)的方法檢測(cè)用戶帳號(hào)是否已被注冊(cè)如果用戶在用戶帳號(hào)文本框中輸入了數(shù)據(jù),在清除用戶帳號(hào)文本框中的無(wú)效字符后,調(diào)用檢測(cè)用戶帳號(hào)的方法檢測(cè)用戶帳號(hào)是否已被注冊(cè)。在代碼清單1-1中num=gh1.DetectionAccount(txtusername.Text.Trim());就是調(diào)用檢測(cè)用戶帳號(hào)的方法。ghl是類的一個(gè)對(duì)象,DetectionAccount()是檢測(cè)用戶帳號(hào)的方法,txtusername是用戶帳號(hào)文本框的ID,DetectionAccount()方法的返回值保存在num中。DetectionAccount()方法寫在類文件gh.cs中,代碼如代碼清單1-3所示。代碼清單1-3檢測(cè)用戶帳號(hào)是否已被注冊(cè)///<summary>///22、檢測(cè)帳號(hào)///</summary>///〈paramname二"strUserName">會(huì)員帳號(hào)</param>///<returns>整數(shù)</returns>publicintDetectionAccount(stringstrUserName){intnum=0;stringsql="SELECTcount(userid)FROMt_usersWHEREusername='"+strUserName+"'";num=this.ExecReaderNum(sql);returnnum;}在會(huì)員表中查詢用戶輸入的用戶帳號(hào),如果在會(huì)員表中沒(méi)有找到,表示用戶輸入的帳號(hào)未被注冊(cè),可以使用。如果在會(huì)員中找到了,表示用戶輸入的帳號(hào)已經(jīng)被他人注冊(cè),不可以使用。SELECTcount(userid)FROMt_usersWHEREusername二'"+strUserName+"'是查詢帳號(hào)的SQL語(yǔ)句,帳號(hào)username為查詢的條件,查詢字段會(huì)員編號(hào)userid。ExecReaderNum()是從數(shù)據(jù)庫(kù)中讀取一個(gè)整數(shù)的方法,此方法寫類文件gh.cs中,代碼如代碼清單1-4所示。代碼清單1-4方法ExecReaderNum()從數(shù)據(jù)庫(kù)中讀取一個(gè)整數(shù)///<summary>///9、從數(shù)據(jù)庫(kù)中讀取整數(shù),通用方法。///</summary>///<paramname二"sql">查詢語(yǔ)句</param>///<returns>整數(shù)</returns>publicintExecReaderNum(stringsql){//獲取數(shù)據(jù)庫(kù)的連接字符串using(SqlConnectionconn=newSqlConnection(SqlHelper.ConnectionStringLocalTransaction)){intnum=0;try{//打開(kāi)數(shù)據(jù)庫(kù)連接conn.Open();//設(shè)置Sqlcommand命令的屬性cmd.Connection=conn;cmd.CommandType=CommandType.Text;cmd.CommandText=sql;//執(zhí)行讀取的SqlCommand命令,將數(shù)據(jù)讀入數(shù)據(jù)讀取器中。SqlDataReaderreader=cmd.ExecuteReader();//如果能讀取數(shù)據(jù),則將數(shù)據(jù)給整型變量num。while(reader.Read()){num=reader.GetInt32(0);}returnnum;}catch{//關(guān)閉與數(shù)據(jù)庫(kù)的連接conn.Close();throw;}}}ExecReaderNum()方法的代碼,包括連接數(shù)據(jù)庫(kù),設(shè)置Sqlcommand命令,執(zhí)行Sqlcommand命令讀取數(shù)據(jù)。SqlDataReaderreader=cmd.ExecuteReader();是讀取數(shù)據(jù)的代碼,數(shù)據(jù)存儲(chǔ)在reader中。num=reader.Getint32(0);是讀取整數(shù)的代碼,整數(shù)存儲(chǔ)在num中。3、用戶單擊注冊(cè)按鈕后檢測(cè)用戶單擊注冊(cè)按鈕后,在按鈕的單擊事件Button1_Click中調(diào)用檢測(cè)帳號(hào)的方法檢測(cè)用戶輸入的帳號(hào)是否已被注冊(cè)。//調(diào)用檢測(cè)帳號(hào)的方法,檢測(cè)用戶輸入的帳號(hào)是否已被注冊(cè)。num=gh1.DetectionAccount(txtusername.Text.Trim());ghl是類的一個(gè)對(duì)象,DetectionAccount()是檢測(cè)帳號(hào)的方法。num是一個(gè)int變量,用于獲取DetectionAccount()的返回值。如果num大于零表示在會(huì)員表t_users中已有用戶輸入的帳號(hào),清除用戶輸入的帳號(hào),并提示用戶輸入的帳號(hào)不能用。(二)會(huì)員注冊(cè)用戶在會(huì)員注冊(cè)界面單擊“注冊(cè)”按鈕后,在“注冊(cè)”按鈕的單擊事件Button1_Click中編寫代碼完成會(huì)員的注冊(cè)。會(huì)員注冊(cè)其實(shí)就是將用戶在會(huì)員注冊(cè)界面輸入的用戶帳號(hào)、登錄密碼和電子郵箱郵插入會(huì)員表t_users中。在插入數(shù)據(jù)之前,先要檢測(cè)用戶輸入的用戶帳號(hào)在t_users表中已存在。如果已存在,表示用戶輸入的用戶帳號(hào)已被注冊(cè),不可以再注冊(cè)。檢測(cè)用戶帳號(hào)的內(nèi)容在“(一)檢測(cè)帳號(hào)”中的“2、用戶單擊注冊(cè)按鈕后檢測(cè)”已介紹,這里主要介紹用戶注冊(cè)的內(nèi)容。如果用戶輸入的用戶帳號(hào)未被注冊(cè),則調(diào)用會(huì)員注冊(cè)的方法AddUser()完成會(huì)員注冊(cè),代碼如代碼清單1-5所示。代碼清單1-5調(diào)用會(huì)員注冊(cè)的方法protectedvoidButton1_Click(objectsender,EventArgse){//調(diào)用檢測(cè)帳號(hào)的方法,檢測(cè)用戶輸入的帳號(hào)是否已被注冊(cè)。num=gh1.DetectionAccount(txtusername.Text.Trim());if(num>0) //num>0表示帳號(hào)被注冊(cè){txtusername.Text=""; //清空文本框Response.Write("<script>alert('抱歉,此帳號(hào)已被其他用戶使用!’);</script>");}else //帳號(hào)未被注冊(cè),添加用戶。{//說(shuō)明:如果密碼加密,貝吐_users表中password的長(zhǎng)度要超過(guò)47,否則注冊(cè)會(huì)出錯(cuò)。try{//調(diào)用“會(huì)員注冊(cè)”的方法,將會(huì)員帳號(hào)、登錄密碼和郵箱插入數(shù)據(jù)庫(kù),并對(duì)密碼加密。num=gh1.AddUser(txtusername.Text.Trim(),gh1.Encrypt(txtPassword.Text.Trim()),txtEMail.Text.Trim());if(num>0){Response.Write("<script>alert('恭喜你!注冊(cè)成功!’)</script>");Response.Write("<scriptlanguage=javascript>window.location.href=document.URL;</script>");}else{Response.Write("<script>alert(‘你注冊(cè)失敗,請(qǐng)重新注冊(cè)!')</script>");}}catch(Exceptionex){stringsRawURL=Request.RawUrl;if(sRawURL.IndexOf("?")>-1){sRawURL=sRawURL.Substring(0,sRawURL.IndexOf("?"));}stringstrError=ex.ToString();Response.Write("<script>alert(strError)</script>");}}}AddUser()有三個(gè)參數(shù),分別是用戶帳號(hào)、登錄密碼和電子郵箱,txtusername是用戶帳號(hào)文本框的ID,txtPassword是登錄密碼文本框的ID,txtEMail是電子郵箱文本框的ID。如果if(num>0)成立,表示會(huì)員注冊(cè)成功。catch(Exceptionex)是異常處理的代碼。AddUser()方法寫在類文件gh.cs中,其代碼如代碼清單1-6所示。代碼清單1-6會(huì)員注冊(cè)方法AddUser()///<summary>///21、會(huì)員注冊(cè)///</summary>///〈paramname二"sUserName">會(huì)員帳號(hào)</param>///<paramname二"sPassword">登錄密碼</param>///<paramname二"sEMail">郵箱</param>///<returns>整數(shù)</returns>publicintAddUser(stringsUserName,stringsPassword,stringsEMail){stringsql="Insertintot_usersvalues('"+sUserName+"','"+sPassword+"','"+sEMail+"')";intnum=ExecData(sql);returnnum;}會(huì)員注冊(cè)方法AddUser()功能是向會(huì)員表t_users插入數(shù)據(jù),Insertintot_usersvalues('"+sUserName+"','"+sPassword+"','"+sEMail+"')是插入數(shù)據(jù)的SQL語(yǔ)句,ExecData(sql)是實(shí)現(xiàn)數(shù)據(jù)插入的方法。如果數(shù)據(jù)插入成功ExecData(sql)的返回值為1,即num的值為1,方法AddUser()的返回值為1。方法ExecData()是一個(gè)通用方法,它能執(zhí)行數(shù)據(jù)的插入、修改和刪除,代碼如代碼清單1-7所示。代碼清單1-7通用方法ExecData()///<summary>///1、更新(插入、修改和刪除)表中的數(shù)據(jù),通用方法。///</summary>///〈paramname二"sql">SQL語(yǔ)句</param>///<returns>整數(shù)</returns>publicintExecData(stringsql){intnum=0;//獲取數(shù)據(jù)庫(kù)的連接字符串using(SqlConnectionconn=newSqlConnection(SqlHelper.ConnectionStringLocalTransaction)){//設(shè)置Sqlcommand命令的屬性cmd.Connection=conn;cmd.CommandType=CommandType.Text;cmd.CommandText=sql;try{//打開(kāi)數(shù)據(jù)庫(kù)連接conn.Open();}catch(Exceptionex){thrownewMyException("10001","數(shù)據(jù)庫(kù)連接失敗!",ex);}try{//執(zhí)行命令,插入數(shù)據(jù)num=cmd.ExecuteNonQuery();}catch(Exceptionex){thrownewMyException("10002",ex.Message,ex);finally{if(conn.State==ConnectionState.Open){conn.Close();}}returnnum;}}ExecData()方法,包括連接數(shù)據(jù)庫(kù),設(shè)置Sqlcommand命令,執(zhí)行Sqlcommand命令插入數(shù)據(jù)。num=cmd.ExecuteNonQuery();為插入數(shù)據(jù)的代碼,使用ExecuteNonQuery()方法向表中插入數(shù)據(jù)。數(shù)據(jù)數(shù)據(jù)插入成功ExecuteNonQuery()會(huì)返回一個(gè)大于零的整數(shù)。在“注冊(cè)”按鈕的單擊事件中使用Encrypt()方法對(duì)登錄密碼加密。登錄密碼加密后管理員也無(wú)法知道會(huì)員的密碼,只有會(huì)員本人知道自己的密碼。加密代碼如代碼清單1-8所示。代碼清單1-8數(shù)據(jù)加密方法Encrypt()///<summary>///15、數(shù)據(jù)加密///</summary>///〈paramname二"password">字符串</param>///<returns>字符串</returns>publicStringEncrypt(stringpassword){//把加密的字符串轉(zhuǎn)化為Byte數(shù)組Byte[]clearBytes=newUnicodeEncoding().GetBytes(password);//調(diào)用MD5加密算法Byte[]hashedBytes=((HashAlgorithm)CryptoConfig.CreateFromName("MD5")).ComputeHash(clearBytes);returnBitConverter.ToString(hashedBytes);}在Encrypt()中使用MD5算法加密,Encrypt()返回加密的字符串。

四、會(huì)員注冊(cè)驗(yàn)證的實(shí)現(xiàn)(一)非空驗(yàn)證1、需要驗(yàn)證的項(xiàng)目用戶帳號(hào)、登錄密碼、確認(rèn)密碼、電子郵箱2、驗(yàn)證控件RequiredFieldValidator表1-2“用戶帳號(hào)”非空驗(yàn)證控件屬性設(shè)置屬性名屬性值說(shuō)明IDrfvUserNameControlToValidatetxtusernametxtusername是用戶帳號(hào)文本框的IDDisplayNoneErrorMessage請(qǐng)您輸入帳號(hào)!表1-3“登錄密碼”非空驗(yàn)證控件屬性設(shè)置屬性名屬性值說(shuō)明IDrfvPasswordControlToValidatetxtPasswordtxtPassword是登錄密碼文本框的IDDisplayNoneErrorMessage請(qǐng)您輸入密碼!表1-4“確認(rèn)密碼”非空驗(yàn)證控件屬性設(shè)置屬性名屬性值說(shuō)明IDrfvRePasswordControlToValidatetxtRePasswordtxtRePassword是確認(rèn)密碼文本框的IDDisplayNoneErrorMessage請(qǐng)您輸入確認(rèn)密碼!

表1-5“電子郵箱”非空驗(yàn)證控件屬性設(shè)置屬性名屬性值說(shuō)明IDrfvEMailControlToValidatetxtEMailtxtEMail是電子郵箱文本框的IDDisplayNoneErrorMessage請(qǐng)您輸入電子郵箱?。ǘ┍容^驗(yàn)證1、需要驗(yàn)證的項(xiàng)目確認(rèn)密碼確認(rèn)密碼要與登錄密碼相同2、驗(yàn)證控件CompareValidator表1-6“確認(rèn)密碼”比較驗(yàn)證控件屬性設(shè)置屬

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論