Removingheadersalreadysent

headersalreadysent  时间:2021-04-12  阅读:()
TheEssentialGuidetoDreamweaverCS4withCSS,Ajax,andPHPDavidPowersTheEssentialGuidetoDreamweaverCS4withCSS,Ajax,andPHPCopyright2009byDavidPowersAllrightsreserved.
Nopartofthisworkmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyanyinformationstorageorretrievalsystem,withoutthepriorwrittenpermissionofthecopyrightownerandthepublisher.
ISBN-13(pbk):978-1-4302-1610-0ISBN-13(electronic):978-1-4302-1611-7PrintedandboundintheUnitedStatesofAmerica987654321Trademarkednamesmayappearinthisbook.
Ratherthanuseatrademarksymbolwitheveryoccurrenceofatrademarkedname,weusethenamesonlyinaneditorialfashionandtothebenefitofthetrademarkowner,withnointentionofinfringementofthetrademark.
DistributedtothebooktradeworldwidebySpringer-VerlagNewYork,Inc.
,233SpringStreet,6thFloor,NewYork,NY10013.
Phone1-800-SPRINGER,fax201-348-4505,e-mailorders-ny@springer-sbm.
com,orvisitwww.
springeronline.
com.
Forinformationontranslations,pleasecontactApressdirectlyat2855TelegraphAvenue,Suite600,Berkeley,CA94705.
Phone510-549-5930,fax510-549-5939,e-mailinfo@apress.
com,orvisitwww.
apress.
com.
ApressandfriendsofEDbooksmaybepurchasedinbulkforacademic,corporate,orpromotionaluse.
eBookversionsandlicensesarealsoavailableformosttitles.
Formoreinformation,referenceourSpecialBulkSales–eBookLicensingwebpageathttp://www.
apress.
com/info/bulksales.
Theinformationinthisbookisdistributedonan"asis"basis,withoutwarranty.
Althougheveryprecautionhasbeentakeninthepreparationofthiswork,neithertheauthor(s)norApressshallhaveanyliabilitytoanypersonorentitywithrespecttoanylossordamagecausedorallegedtobecauseddirectlyorindirectlybytheinformationcontainedinthiswork.
Thesourcecodeforthisbookisfreelyavailabletoreadersatwww.
friendsofed.
comintheDownloadssection.
CreditsLeadEditorBenRenow-ClarkeTechnicalReviewerTomMuckEditorialBoardClayAndres,SteveAnglin,MarkBeckner,EwanBuckingham,TonyCampbell,GaryCornell,JonathanGennick,MichelleLowman,MatthewMoodie,JeffreyPepper,FrankPohlmann,BenRenow-Clarke,DominicShakeshaft,MattWade,TomWelshProjectManagerBethChristmasCopyEditorsKimWimpsett,MarilynSmithAssociateProductionDirectorKariBrooks-CoponyProductionEditorKellyWinquistCompositorMollySharpProofreaderPatrickVincentIndexerJulieGradyArtistAprilMilneInteriorandCoverDesignerKurtKramesManufacturingDirectorTomDebolskiCONTENTSATAGLANCEAbouttheAuthorxxAcknowledgmentsxxiIntroductionxxiiChapter1:Dreamweaver'sNewLook—MorethanSkinDeep.
.
.
.
1Chapter2:SettingUpaSiteinDreamweaver59Chapter3:CreatingaWebPageandAddingContent103Chapter4:UsingCSStoAddaTouchofStyle155Chapter5:CreatingaCSSSiteStraightOutoftheBox195Chapter6:BuildingSiteNavigationwiththeSpryMenuBar.
.
.
233Chapter7:UsingSpryDynamicEffectsandComponents257Chapter8:GoingBeyondtheBasicswithSpryandAjax307Chapter9:BuildingOnlineFormsandValidatingInput371iiiChapter10:IntroducingtheBasicsofPHP425Chapter11:UsingPHPtoProcessaForm459Chapter12:ReducingYourWorkloadwithPHPIncludes503Chapter13:PreservingDesignIntegritywithTemplatesandInContextEditing539Chapter14:StoringUserRecordsinaDatabase583Chapter15:ValidatingDatabaseInputandUserAuthentication.
.
.
637Chapter16:WorkingwithCustomFormsandMultipleTables.
.
.
683Chapter17:HandlingCheckboxGroups,Searches,andDates.
.
.
743Chapter18:UsingXSLTtoDisplayLiveNewsFeedsandXML.
.
.
805Chapter19:UsingSpryDataSetstoRefreshContent843Chapter20:DeployingYourSiteontheInternet889Appendix:GeneratingXMLwithPHP905Index917ivCONTENTSAbouttheAuthorxxAcknowledgmentsxxiIntroductionxxiiChapter1:Dreamweaver'sNewLook—MorethanSkinDeep.
.
.
.
1ExploringtheUI3Inspectingthedefaultworkspace3Switchingbetweengrayscaleandcoloredicons7Choosingapresetworkspacelayout7Expandingandcollapsingpanelsvertically9Resizingpanels9Usingpanelsiniconicmode9Minimizingiconicpanels10Convertingiconicpanelsintoafloatingtoolbar11Closingandrestoringfloatingpanels11Switchingbetweenpanelsandicons12Temporarilyhidingpanels12UsingAuto-Show13HidingtheApplicationbar(Maconly)13Movingandregroupingpanels13Movingasinglepanel13Movingapaneltoadifferentgroup14Changingtheorderofpanelswithinagroup14Movingagroupofpanels14Stackinganddockingpanels15UsingandconfiguringtheInsertpanel15Hidingthelabels17ConvertingtheInsertpaneltoatabbedtoolbar18Switchingbetweentabsandmenu19CustomizingtheFavoritescategory19vUsingthePropertyinspector20SelectingHTMLandCSSviewinthePropertyinspector20ConfiguringthePropertyinspector22UsingtheResultspanelgroup23Managingworkspaces23ExploringtheDocumentwindow24Workingwithtabbedwindows25Viewingthefilepath25Closingtabs25Displayingdocumentsoutsidethetabbedinterface25Gettingquickaccesstorelatedfiles26UsingtheRelatedFilestoolbar26UsingtheCodeNavigatortoeditstylesheets27ExploringtheDocumenttoolbar29SwitchingbetweenCode,Design,andSplitviews29UsingLiveviewtotestpages31WhathappenedtoLiveDataandhowdoesLiveviewdiffer34InspectingdynamicallygeneratedcodewithLiveCode35OtheroptionsontheDocumenttoolbar36GettingthebestoutofCodeview37UsingtheCodingtoolbar37SettingCodeviewoptions41Usingcodehintsandautocompletion42IntroducingimprovedsupportforJavaScriptcodehints43Printingcodeincolor43AquicklookatotherchangesinDreamweaverCS444Screensharing44Settingupascreen-sharingsession45ManagingCSXS49Othernewfeatures50Whatisnolongerthere51Changingdefaultsettings52Migratingsnippetsandotherpersonalsettings53LocatingtheDreamweaverconfigurationfiles53Migratingsnippets54Transferringworkspacelayouts55Movingfavorites55TroubleshootingmysteriousDreamweavererrors55Chapterreview56Chapter2:SettingUpaSiteinDreamweaver59Decidinghowtoorganizeyoursite60Decidingwheretotestyourpages61Choosingtheappropriatefilenameextension62Choosingdocument-orroot-relativelinks64Understandingthedifference64Whichshouldyouchoose65CONTENTSviChoosingwheretostoreyourfiles66Findingthetestingserverroot66CreatingvirtualhostsonApache69RegisteringvirtualdirectoriesonIIS76Creatingthesitedefinition77TellingDreamweaverwheretofindlocalfiles78TellingDreamweaverhowtoaccessyourremoteserver80Choosinganaccessoption80UsingFTP81Definingthetestingserver83Selectingoptionsforlocaltesting83Selectingoptionsforremotetesting85Settingothersiteoptions87UsingversioncontrolwithSubversion88RegisteringasitewithaSubversionrepository89Committingnewfilesandchangestotherepository91Viewingrevisionsandresolvingconflicts93Keepingyourworkingcopiesup-to-date94Lockingfiles94ManagingDreamweaversites94Settingoptionsthatapplytoallsites96Settingnewdocumentpreferences96Choosingthedefaultdocumenttype97SettingoptionsforPreviewinBrowser98Usingafile-comparisonutility99SettinguptheFileComparefeature99Comparingfiles100Chapterreview100Chapter3:CreatingaWebPageandAddingContent103Creatinganewdocument104StartingfromtheWelcomescreen105UsingtheNewDocumentdialogbox105Otherwaysofopeninganewdocument107Insertingtext108Insertingtextdirectly108Copyingandpastingtext110ImportingMicrosoftWorddocuments(Windowsonly)111Insertingimages112Insertingimagesstoredonyourcomputer112Dragginganddroppingimages113Selectinganimagethroughthefilesystem113Addingalternatetext115Textandimagealignment116Insertingremoteimages116Insertingplaceholderimages117CONTENTSviiUsingPhotoshopSmartObjectsasimages119InsertingaPhotoshopSmartObject120UpdatingaSmartObject122InsertingFlashandFlexmovies124EditingDreamweaverCS3pagesthatcontainSWFmovies128Addingstructuretoyourpagecontent128SelectingtheHTMLviewofthePropertyinspector130Creatingparagraphs,headings,andpreformattedtext131Addinginlinetags132UsingtheBoldandItalicbuttons132UsingtheFormatStylemenu132UsingWrapTagandRemoveTag133Creatinglists134Creatingbulletpointsandnumberedlists135Creatingadefinitionlist136Creatingblockquotes136Usingtables137Insertingtables137Editingtables138Insertinganddeletingrowsandcolumnsaccurately140Selectingtablecells,rows,andcolumns141ImportingdatatablesfromMicrosoftExcel(Windowsonly)142ImportingdatafromaCSVfile142Organizingcontentintoalogicalstructure142Groupingrelatedcontentwithtags143Insertingahorizontalrule146Creatinglinks146Usingtexttolinktootherpages146UsingtheSelectFiledialogbox147UsingtheHyperlinkdialogbox148Openingalinkinanewwindow149Linkingtoaspecificpartofapage149Usingimagesaslinks150Removingthelinkborder150Creatinganimagemap150Chapterreview153Chapter4:UsingCSStoAddaTouchofStyle155Creatingbasicstylerules157Modifyingpageproperties157InspectingtherulescreatedbyPageProperties163Insertingandstylinga164Creatingnewstylerules169Definingaselector169Definingtherule'sproperties172IntroducingtheCSSStylespanel177OpeningtheCSSStylespanel177ViewingAllandCurrentmodes177CONTENTSviiiExploringthePropertiespaneoftheCSSStylespanel179DisplayingCSSpropertiesbycategory179DisplayingCSSpropertiesalphabetically179DisplayingonlyCSSpropertiesthathavebeenset180Attachinganewstylesheet180Adding,editing,anddeletingstylerules181Movingstylerules181Exportingrulestoanewstylesheet181Movingruleswithinastylesheet184Movingrulesbetweenexternalstylesheets184Movinginlinestylestoastylesheet186CreatinginlinestylesforHTMLemail187SettingyourCSSpreferences188Creatingandeditingstylerules189Settingthedefaultformatofstylerules190Checkinghowstyleswilllookinothermedia191UsingtheStyleRenderingtoolbar191UsingDeviceCentralCS4192Chapterreview193Chapter5:CreatingaCSSSiteStraightOutoftheBox195Usingabuilt-inCSSlayout196Choosingalayout197Decidingwheretolocateyourstylerules197Linkingtoexistingstylesheets198Makingsureconditionalcommentsareapplied198Stylingapage199InspectingthecascadeinCurrentmode208Calculatingspecificity209Finishingthelayout210Creatinganewpagewiththesamestyles216UsingFindandReplace218Searchingfortext220Searchingsourcecode221Performingadvancedtextsearches222Performingcomplexreplacementswithspecifictags224Usingregularexpressionsinsearches225Savingqueriesforfutureuse228UsingastoredquerytoremoveCSScomments229Chapterreview229Chapter6:BuildingSiteNavigationwiththeSpryMenuBar.
.
.
233ExaminingthestructureofaSprymenubar235Lookingatthemenubar'sstructure237Editingamenubar238MaintainingaccessibilitywiththeSprymenubar239CONTENTSixCustomizingthestyles240Changingthemenuwidth240Changingcolors241Addingborders241Changingthefont242StylingaSprymenubar243Towrapornottowrap,thatisthequestion243Customizingthedesign248Choosingbordercolors252Removingamenubar253Chapterreview254Chapter7:UsingSpryDynamicEffectsandComponents257AnimatingpageelementswithSpryeffects259DOM101—whycleancodematters260ApplyingaSpryeffect262Exploringtheavailableeffects266Appear/Fade267Blind268Grow/Shrink268Highlight270Shake270Slide271Squish271Applyingmultipleeventstoatriggerelement271Removingeffectsandbehaviorscleanly272Restoringadeletedeffectorbehavior273ConservingspacewithSpryUIcomponents273Buildingatabbedinterface274Examiningthestructureofthetabbedpanelswidget275Editingatabbedpanelswidget277Selectingharmoniouscolors281Convertingtoverticaltabs284Avoidingdesignproblemswithtabbedpanels288Usingtheaccordionwidget289Examiningthestructureofanaccordion289EditingandstylingaSpryaccordion291Usingcollapsiblepanels295Examiningthestructureofacollapsiblepanel296Editingandstylingcollapsiblepanels297CreatingtooltipswithSpry299ExaminingthestructureofaSprytooltip299Insertingandstylingtooltips300RemovingaSprywidget304Chapterreview305CONTENTSxChapter8:GoingBeyondtheBasicswithSpryandAjax307Programmingterminology101309UnderstandingSpryobjects310InitializingaSpryobject310Changingaccordiondefaults311Usinganobject'smethods315Openingpanelsfromalinkonthesamepage315UsingtheClusterobjecttocombineeffects327UsingSpryutilities335PassinginformationtoaSprywidgetthroughaURL336Openingataboraccordionpanelfromanotherpage336Openingacollapsiblepanelfromanotherpage340SelectingandmanipulatingpageelementswithSpry.
340Reducingdownloadtimeswithsmallerfiles350CreatingunobtrusiveJavaScript350UsingtheJavaScriptExtractortoexternalizescripts350UsingotherJavaScriptlibraries352InstallingDreamweaverextensions354UsingtheAdobeExtensionManager355Migratingextensionsfromapreviousversion355Installinganextension356Removinganextension357UsingjQueryandYUIwebwidgets358InsertingajQueryUIdialogwidget360SelectingdateswithaYUIcalendar365Chapterreview368Chapter9:BuildingOnlineFormsandValidatingInput371Buildingasimplefeedbackform372Choosingtherightpagetype372CreatingaPHPpage373Mixing.
phpand.
htmlpagesinasite374Insertingaforminapage374InsertingaforminCodeview376Addingtextinputelements376Settingpropertiesfortextfieldsandtextareas380Convertingatextfieldtoatextarea,andviceversa382Stylingthebasicfeedbackform382UnderstandingthedifferencebetweenGETandPOST384Passinginformationthroughahiddenfield386Usingmultiple-choiceformelements387Offeringarangeofchoiceswithcheckboxes388Usingradiobuttonstoofferasinglechoice394Offeringasinglechoicefromadrop-downmenu397Creatingamultiple-choicescrollablelist399CONTENTSxiOrganizingformelementsinlogicalgroups402Insertingafieldset402Validatinguserinputbeforesubmission403UsingSpryvalidationwidgets404InsertingaSpryvalidationwidget406Removingavalidationwidget406ValidatingatextfieldwithSpry406Buildingyourowncustompattern413ValidatingatextareawithSpry414ValidatingcheckboxeswithSpry416ValidatingaradiobuttongroupwithSpry419Validatingadrop-downmenuwithSpry420ValidatingpasswordswithSpry421Chapterreview422Chapter10:IntroducingtheBasicsofPHP425UnderstandingwhatPHPisfor426Increasinguserinteractivitywithserver-sidetechnology427WritingPHPscripts428EmbeddingPHPinawebpage428Endingcommandswithasemicolon429Usingvariablestorepresentchangingvalues429Namingvariables430Assigningvaluestovariables430DisplayingPHPoutput431Commentingscriptsforclarityanddebugging432Choosingsingleordoublequotationmarks432Usingescapesequencesinstrings434Joiningstringstogether436Addingtoanexistingstring436Usingquotesefficiently437Specialcases:true,false,andnull437Workingwithnumbers438Performingcalculations438Combiningcalculationsandassignment440Usingarraystostoremultiplevalues441Usingnamestoidentifyarrayelements442Inspectingthecontentsofanarraywithprint_r(443Makingdecisions443ThetruthaccordingtoPHP445Usingcomparisonstomakedecisions445Testingmorethanonecondition447Usingtheswitchstatementfordecisionchains448Usingtheconditional(ternary)operator449CONTENTSxiiUsingloopsforrepetitivetasks450Loopsusingwhileanddo.
.
.
while450Theversatileforloop451Loopingthrougharrayswithforeach452Breakingoutofaloop453Usingfunctionsforpresettasks454UnderstandingPHPerrormessages455Chapterreview457Chapter11:UsingPHPtoProcessaForm459Activatingtheform461GettinginformationfromtheserverwithPHPsuperglobals461Sendingemail462Scriptingthefeedbackform463UsingBalanceBraces472Testingthefeedbackform473Troubleshootingmail(473Improvingthesecurityofthemail-processingscript473Gettingridofunwantedbackslashes474Makingsurerequiredfieldsaren'tblank475Preservinguserinputwhenaformisincomplete480Savingfrequentlyusedcodeasasnippet483Filteringoutpotentialattacks486Safelyincludingtheuser'saddressinemailheaders489Whatifyoustilldon'tgetanemail492Handlingmultiple-choiceformelements493Redirectingtoanotherpage498Blockingsubmissionbyspambots499UsingaCAPTCHA499Usingaquestioninplaintext500Usingahoneypot500Chapterreview501Chapter12:ReducingYourWorkloadwithPHPIncludes503Includingtextandcodefromotherfiles504IntroducingthePHPincludecommands504TellingPHPwheretofindtheexternalfile504Usingsite-root-relativelinkswithincludes508Lighteningyourworkloadwithincludes510Choosingtherightfilenameextensionforincludefiles510DisplayingHTMLoutput510Avoidingproblemswithincludefiles514Applyingstyleswithdesign-timestylesheets518Addingdynamiccodetoaninclude519UsingincludestorecyclefrequentlyusedPHPcode523CONTENTSxiiiAdaptingthemailprocessingscriptasaninclude525Analyzingthescript525Buildingthemessagebodywithagenericscript527Avoidingthe"headersalreadysent"error534Chapterreview536Chapter13:PreservingDesignIntegritywithTemplatesandInContextEditing539UsingDreamweavertemplates540Creatingatemplate541Addingeditableregionstothemastertemplate542Creatingchildpagesfromatemplate545Creatingandcontrollinganoptionalregion548Usingadvancedoptionswithanoptionalregion552Usingeditableoptionalregions552Creatingarepeatingregion553Removingorchangingtemplateregions553ComparingtemplateswithPHPincludes556Lockingcodeoutsidethetags559Breakingthelinkbetweenapageandatemplate559UpdatingContentwithAdobeInContextEditing559HowInContextEditingworks561MinimumrequirementsforInContextEditing562AddingInContextEditingmarkuptoapage562Creatinganeditableregion562Controllingwhatcanbeeditedinaneditableregion564CopyingtheInContextEditingfilestoyoursite566Creatingarepeatingregion567Controllingactionswithinarepeatingregionsgroup568Removingeditableandrepeatingregions568EnablingtheuseofCSSclasses569PreparingapageforInContextEditing570EditingapagewithInContextEditing571LoggingintoInContextEditing572Updatinganeditableregion573Editingarepeatableregion577Savingdraftsandpublishing578AssessingtheprosandconsofInContextEditing579Chapterreview579Chapter14:StoringUserRecordsinaDatabase583IntroducingMySQL584UnderstandingbasicMySQLterminology585UsingMySQLwithagraphicinterface586SettingupphpMyAdminonWindowsandMac587LaunchingphpMyAdmin589Troubleshooting590LoggingoutofphpMyAdmin591CONTENTSxivSettingupadatabaseinMySQL591Creatingalocaldatabasefortesting591Understandingcollation592CreatinguseraccountsforMySQL593ChangingtheMySQLrootpasswordinphpMyAdmin593Grantinguserprivileges594Howadatabasestoresinformation597Howprimarykeyswork597Designingadatabasetable598Choosingthetablename599Decidinghowmanycolumnstocreate600ChoosingtherightcolumntypeinMySQL600Decidingwhetherafieldcanbeempty602Creatingauserregistrationsystem603Definingthedatabasetable603TellingDreamweaverhowtoconnecttothedatabase607Troubleshootingtheconnection609Insertinguserdetailsintothedatabase609Usingserverbehaviorswithsite-root-relativelinks614Retrievinginformationfromthedatabase614Editingandremovingserverbehaviors617Displayingtheresultsofarecordset617Displayingmultipleresultswitharepeatregion620Updatinganddeletingrecords621Retrievingadatabaserecordusingitsprimarykey624UsingtheRecordUpdateFormWizard626Deletingarecord629Displayingdifferentcontentwhenarecordsetisempty633Chapterreview635Chapter15:ValidatingDatabaseInputandUserAuthentication.
.
.
637AnalyzingthecodegeneratedbyDreamweaver639Inspectingtheserverbehaviorcode639Connectingtothedatabase639PreventingSQLinjection640Insertingarecordintoadatabase640Understandingwhyaredirectdoesn'twork642Updatingadatabaserecord642Deletingarecord642DistinguishingbetweenFormVariableandURLParameter643Retrievingdatabaserecordswitharecordset643Creatingarepeatregion644Addingserver-sidevalidation645Verifyingthatrequiredfieldshavebeenfilledin646Verifyingandencryptingthepassword648Dealingwithduplicateusernames650Displayingtheerrormessages652CONTENTSxvBuildingcustomserverbehaviors654CreatingaStickyTextFieldserverbehavior654CreatingaserverbehaviorforStickyTextAreas656Completingtheuserregistrationform657Preservinguserinputintextfields657Applyingadynamicvaluetoaradiogroup658Applyingserver-sidevalidationtotheupdateform661Mergingthevalidationandupdatecode662AdaptingtheStickyTextFieldserverbehavior666Bindingthefieldvaluestotheupdateform668Whatsessionsareandhowtheywork671CreatingPHPsessions672Creatinganddestroyingsessionvariables672Destroyingasession672Checkingthatsessionsareenabled673Registeringandauthenticatingusers673Creatingaloginsystem674Displayingdifferentcontentdependingonaccesslevels677Greetingusersbyname678Creatingyourown$_SESSIONvariablesfromuserdetails679Redirectingtoapersonalpageafterlogin679Encryptinganddecryptingpasswords680Chapterreview680Chapter16:WorkingwithCustomFormsandMultipleTables.
.
.
683Storingrelatedinformationinseparatetables684Decidingonthebeststructure685Usingforeignkeystolinkrecords685Avoidingorphanedrecords687Definingthedatabasetables688Addinganindextoacolumn690DefiningtheforeignkeyrelationshipinInnoDB690Populatingthetables695Restoringthecontentofthetables695Selectingrecordsfrommorethanonetable696ThefouressentialSQLcommands700SELECT700INSERT704UPDATE704DELETE704Managingcontentwithmultipletables705Insertingnewquotations706UsingaMySQLfunctionandaliastomanipulatedata709ApplyingtheInsertRecordserverbehaviortoacustomform711SettingvaluesmanuallyintheColumnsfield712Insertingnewauthorsintheparenttable714UsingvariablesinaSQLquery715CONTENTSxviPagingthroughalonglistofdatabaseresults720Returningtothesamepageinalonglistofresults726Deletingauthorsfromtheparenttable728Improvingthedeleteform732PerformingacascadingdeletewithInnoDBtables733Updatingquotationsinthechildtable735Solvingthemysteryofmissingrecordswithaleftjoin736Deletingquotations739Chapterreview740Chapter17:HandlingCheckboxGroups,Searches,andDates.
.
.
743StoringmultiplevaluesinaSETcolumn744DefiningaSETcolumn745InsertingdataintoaSETcolumn747RetrievingdatastoredinaSETcolumn750Gettingtheinformationyouwantfromadatabase754UnderstandinghowDreamweaverbuildsaSQLquery754TroubleshootingSQLqueries758ChoosingGETorPOSTforsearchforms759Usingnumericalcomparisons760Searchingwithinanumericalrange763Searchingfortext766Makingasearchcase-sensitive766Displayingamessagewhennoresultsarefound766Searchingmultiplecolumns768Usingwildcardcharactersinasearch768UsingaFULLTEXTindex772SearchingforvaluesstoredinaSETcolumn774Countingrecords774CountingrecordsinaSETcolumn775Eliminatingduplicatesfromarecordset776Buildingcomplexsearches776Enhancingthedisplayofsearchresults778Displayingthenumberofsearchresults778Creatingstripedtablerows779Displayinglinebreaksintext781Reusingarecordset781Understandinghowarepeatregionworks784Formattingdatesandtime785StoringthecurrentdateandtimeinMySQL785StoringotherdatesinMySQL790UsingDATE_FORMAT()tooutputuser-friendlydates796WorkingwithdatesinPHP798Settingthecorrecttimezone799CreatingaUnixtimestamp799FormattingdatesinPHP800Chapterreview802CONTENTSxviiChapter18:UsingXSLTtoDisplayLiveNewsFeedsandXML.
.
.
805AquickguidetoXMLandXSLT806WhatanXMLdocumentlookslike806UsingHTMLentitiesinXML808UsingXSLTtodisplayXML809Checkingyourserver'ssupportforXSLT809PullinginanRSSnewsfeed811HowDreamweaverhandlesserver-sideXSLT812UsingXSLTtoaccesstheXMLsourcedata813Displayingthenewsfeedinawebpage820FixingabugintheXSLTransformationserverbehavior822BeingabitmoreadventurouswithXSLT824SettingupalocalXMLsource825UnderstandinghowXSLTisstructured827Definingnewentities827EmbeddingHTMLinXSLT827Accessingnestedrepeatingelements828Creatingconditionalregions830Testingasinglecondition830Testingalternativeconditions831Sortingelements833Formattingelements834Displayingoutputselectively835FilteringnodeswithXPath835UsingXSLTparameterstofilterdata837Chapterreview841Chapter19:UsingSpryDataSetstoRefreshContent843CreatingaSprydatasetfromHTML845GeneratingtheHTMLsource846UsingtheSpryDataSetwizard850DisplayingadatasetinaSprytable851DisplayingrelateddatainaSprydetailregion859Creatingamaster-detailsetinasingleoperation862Displayingadatasetasalist864UnderstandingtheSprydatacode867What'sthedifferencebetweenrepeatandrepeatchildren868Switchingdatasetsdynamically870FilteringaSprydataset870CreatingaSpryselectlist872UsingaSpryselectlisttochangepagecontent874CreatingaSprydatasetfromXML879UsingtheSpryDataSetwizardwithanXMLdocument879ValidatingpagesthatuseSpry884Chapterreview887CONTENTSxviiiChapter20:DeployingYourSiteontheInternet889Uploadingyourwebpages890Uploadingawholesite890Cloakingfilesnotrequiredontheremoteserver891Synchronizingasite893Selectingrecentlymodifiedfiles895Viewingthelocalandremotesitessidebyside896Uploadingdependentfiles898Transferringdatabasetables899ConfiguringtheremoteMySQLconnection901Chapterreview903Appendix:GeneratingXMLwithPHPConvertingarecordsettogenerateXML906Usingaproxyscripttofetcharemotefeed910UsingastaticXMLdocumentasacache912SettingpermissionforPHPtowritefiles912UsingPHPtowritetoafile912Index917CONTENTSxixABOUTTHEAUTHORDavidPowersisanAdobeCommunityExpertandAdobeCertifiedInstructorforDreamweaverandauthorofaseriesofhighlysuccessfulbooksonPHP,includingPHPSolutions:DynamicWebDesignMadeEasy(friendsofED,ISBN:978-1-59059-731-6)andPHPObject-OrientedSolutions(friendsofED,ISBN:978-1-4302-1011-5),aswellastheDreamweaverCS3editionofthisbook.
Asaprofessionalwriter,hehasbeeninvolvedinelectronicmediaformorethan30years,firstwithBBCradioandtelevisionandmorerecentlywiththeInternet.
HisclearwritingstyleisvaluednotonlyintheEnglish-speakingworld;severalofhisbookshavebeentranslatedintoSpanishandPolish.
Whatstartedasamildinterestincomputingwastransformedalmostovernightintoapassion,whenDavidwaspostedtoJapanin1987asBBCcorrespondentinTokyo.
WithnocorporateITdepartmentjustdownthehallway,hewasforcedtolearnhowtofixeverythinghimself.
Whennottinkeringwiththeinnardsofhiscomputer,hewasreportingforBBCTVandradioontheriseandcollapseoftheJapanesebubbleeconomy.
DavidhasalsotranslatedseveralplaysfromJapanese.
Torelax,heenjoysnothingbetterthanvisitinghisfavoritesushirestaurant.
AbouttheTechnicalReviewerTomMuckisthecoauthorofnineAdobe/Macromedia-relatedbooks.
TomalsowritesextensionsforDreamweaver,availableathissitehttp://www.
tom-muck.
com.
TomisalsotheleadPHPandColdFusionprogrammerforCartweaver,theonlineshoppingcartsoftwarepackage;isafoundingmemberofCommunityMX;andhaswrittenmorethan150articlesonPHP,ColdFusion,SQL,andrelatedtopics.
TomhasalsobeenanAdobeCommunityExpertinitsvariousincarnationssince1999.
TomisanextensibilityexpertfocusedontheintegrationofAdobe/MacromediaproductswithColdFusion,PHP,ASP,andotherlanguages,applications,andtechnologies.
Tomwasrec-ognizedforthisexpertisein2000whenhereceivedMacromedia'sBestUltraDevExtensionAward.
Hehasalsowrittennumerousarticlesformagazines,journals,andwebsitesandspeaksatconferencesonrelatedsubjects.
xxACKNOWLEDGMENTSManypeoplecontributedtothisbookinavarietyofways.
Some—liketheproductionstaffatApress/friendsofED—wereinvolveddirectly.
I'dliketopayparticularthankstomyeditor,BenRenow-Clarke,whogavemefreereintoshapethebookthewayIwantedbutalwaysmaintainedacriticaleyefromthereader'sperspective.
Thanks,too,toBethChristmasandKellyWinquistforkeepingtheprojectrunningsmoothlyandontime.
IwasdelightedwhenTomMuck,anacknowledgedDreamweaverexpert,agreedtoactasmytechnicalrevieweragain.
Hesavedmefromseveralembarrassingmistakes(anythatremainaremyresponsibilityalone),andhisdeepknowledgeofDreamweaverandotherwebtech-nologiesaddedvaluableperspectivethroughoutthebook.
I'malsogratefultoDevinFernandezandScottFegetteofAdobe,whogavemeunparalleledaccesstotheDreamweaverdevelopmentteamandenduredmyrantsandcomplaintswithgoodhumorwhenIdidn'tlikesomeofthechangesbeingmadetomyfavoritewebdevel-opmentprogram.
Thanksforrestoringthecoloredicons,guys.
Well,thatandeverythingelse—thisversionisastunner.
Othersareprobablytotallyunawareoftheroletheyplayedinshapingthisbook,butitwasnonethelesssignificant.
I'mreferringtoparticipantsinthefriendsofEDandAdobeonlineforums,whoaskedhowtodocertainthingswithDreamweaver,JavaScript,orPHP.
Manyoftheirideashavebeenwovenintothisnewedition.
Finally,thankyouforchoosingmybook.
xxiINTRODUCTIONDreamweaverisn'tadifficultprogramtouse,butit'sdifficulttousewell.
IhavebeenusingDreamweaveronadailybasisforaboutnineyears,pushingittothelimitandfindingoutitsgoodpoints—anditsbadones,too.
TheuserinterfacehaschangedconsiderablyinDreamweaverCS4,andtheintroductionofnewfeatures,suchasRelatedFilesandLiveview,islikelytohaveabigimpactonthewayevenlong-termDreamweaveruserscreatewebpages.
TheideaofthisbookistohelpyougetthebestoutofDreamweaverCS4,withparticularemphasisonbuildingdynamicwebpagesusingCascadingStyleSheets(CSS),Spry—theAdobeimplementationofAjax—andotherJavaScriptframeworks,andtheopensourceserver-sidetechnologyPHP.
ButhowcanyougetthebestoutofthisbookWhothisbookisforIliketocreditmyreaderswithintelligence,sothisbookisn't"DreamweaverCS4fortheClueless"or"DreamweaverCS4forCompleteBeginners.
"Youdon'tneedtobeanexpert,butyoudoneedtohaveaninquiringmind.
Itdoesn'tteachthebasicsofwebdesign,nordoesitattempttolisteverysinglefeatureinDreamweaverCS4.
Theemphasisisonbuildingmodern,standards-compliantwebsites.
Ifyou'reathomewiththebasicsofHTMLandCSS,thenthisbookisforyou.
Ifyouhaveneverbuiltawebsitebeforeanddon'tknowthedifferencebetweenantagandyourAuntJemima,youmightfindthisbookabitofastruggle.
IfrequentlydiveintoCodeviewandexpectyoutorollupyoursleevesandgettogripswiththecode.
It'snotcodingforcoding'ssake;theideaistoadaptthecodegeneratedbyInthisedition,IuseHTMLtoreferequallytoHypertextMarkupLanguageandExtensibleHypertextMarkupLanguage(XHTML).
HTML4.
01andXHTML1.
0areessen-tiallythesame.
TheonlydifferenceisthatXHTML1.
0appliesstricterrulesinthewayitiswritten(seehttp://www.
w3.
org/TR/xhtml1/#diffsforthedetails).
AllthecodeexamplesadheretotherulesofXHTML1.
0,thedefaultsettinginDreamweaverCS4.
xxiiDreamweavertocreatewebsitesthatreallywork.
IexplaineverythingasIgoalongandsteerclearofimpenetrablejargon.
AsforCSS,youdon'tneedtobeacandidateforinclusionintheCSSZenGarden(http://www.
csszengarden.
com),butyoushouldunderstandthebasicprinciplesbehindcreatingastylesheet.
WhataboutAjaxandPHPIdon'tassumeanypriorknowledgeinthesefields.
Ajaxcomesinmanydifferentguises;thisbookconcentratesmainlyonSpry,theAdobeAjaxframework(codelibrary)thatisintegratedintoDreamweaverCS4.
MostSpryfeaturesareaccessedthroughintuitivedialogboxes.
However,Chapter8getsinsidethecode,exploringnotonlySpry,buttheimprovedsupportinDreamweaverCS4forotherJavaScriptlibraries,suchasjQuery(http://jquery.
com/)andtheYahoo!
UserInterface(YUI)Library(http://developer.
yahoo.
net/yui).
DreamweaveralsotakescareofalotofthePHPcoding,butitcan'tdoeverything,soIshowyouhowtocustomizethecodeitgenerates.
Chapter10servesasacrashcourseinPHP,andChapter11putsthatknowledgetoimmediateusebyshowingyouhowtosendanemailfromanonlineform—oneofthethingsthatDreamweaverdoesn'tautomate.
Thisbookdoesn'tattempttoteachyouhowtobecomeaPHPprogrammer,butbythetimeyoureachthefinalchapter,youshouldhavesufficientconfidencetolookascriptintheeyewithoutflinching.
"DoIneedDreamweaverCS4"Mostdefinitely,yes.
AlthoughthePHPfeaturesremainbasicallyunchangedsinceDreamweaver8.
0.
2,thechangestotheDocumentwindowandPropertyinspectoraresosubstantialthatyouwouldhaveconsiderabledifficultyusingthisbookwithanearlierversionofDreamweaver.
Ifyou'restillusingDreamweaverCS3,getacopyoftheCS3versionofthisbook.
IfyouwanttousePHPinanearlierversionofDreamweaver,IsuggestyoureadmyFoundationPHPforDreamweaver8(friendsofED,ISBN:978-1-59059-569-5)instead.
Inevitably,somethingshavechangedsincethosebookswerepublished,butallimportantcorrectionsandupdatesarelistedontherelevanterratapagesathttp://friendsofed.
com/.
What'sdifferentfromtheCS3editionIhateitwhenIbuyabookandfindmyselfreadingfamiliarpageafterfamiliarpage.
ThisbookisarevisededitionofTheEssentialGuidetoDreamweaverCS3withCSS,Ajax,andPHP(friendsofED,ISBN:978-1-59059-859-7),updatedtotakeaccountofthechangesinDreamweaverCS4.
Mostoftheexamplesareinheritedfromthepreviousedition,butmanyofthemhavebeenreworkedtotakeadvantageofnewfeatures,suchasLiveview,RelatedFiles,andtheCodeNavigator.
IhavealsoreorganizedtheexerciseswiththePHPserverbehaviorsinwhatIhopeyouwillagreeisamorelogicalsequence.
Chapter14offersagen-tlerintroductiontointeractionwithadatabasebeforetacklingthevitalsubjectofserver-sidevalidationinChapter15.
INTRODUCTIONxxiiiIhavealsodevotedmoreattentiontoworkingwithSpry,aswellaswithotherJavaScriptlibraries.
Chapter8exploreshand-codingwithSpryandintroduceswebwidgetsthatusejQueryandtheYUILibrary.
Everychapterhasbeencompletelyrevisedandrewritten,andIhaveaddedachapteronthebasicsofinsertingcontentinawebpageinDreamweaver.
Thisismainlyforthebenefitofreadersmigratingfromanotherwebdevelopmentprogram,suchasAdobeGoLive,whichhasnowbeendiscontinued.
Itwillalsohelpnewcomerstowebdevelopment.
However,asImentionedearlier,youshouldalreadyknowthebasicsofHTMLandCSS.
Anothernewchap-terdealswiththemechanicsofdeployingadatabase-drivenwebsiteontheInternet.
You'llfinddetailsofallthemajornewfeaturesinDreamweaverCS4inthefollowingchapters:Chapter1coversthechangestotheuserinterface,LiveCode,andscreensharing.
Chapter2describeshowtointegrateyoursiteswithSubversionversioncontrol.
Chapter3showsyouhowtoworkwithPhotoshopSmartObjects.
InChapter4you'llbeginworkingwiththeRelatedFilestoolbarandLiveview,andinChapter6you'reintroducedtotheCodeNavigator—newtoolsthatareusedthroughoutthebook.
Chapter8coverstheJavaScriptExtractorandJavaScriptwebwidgets.
Chapter13describesindetailhowtopreparepagesforusewithAdobe'snewonlineservice,InContextEditing.
Chapter19showsyouhowtousetheSpryDataSetwizardtocreatedatasetsfrombothHTMLandXMLdatasourcesinavisuallyintuitiveway.
Eventhoughthisbookisabout200pageslongerthanthepreviousedition,therearesomanynewfeaturesinDreamweaverCS4thatIneededtodropsomematerial.
Withreluctance,IdecidedtheinstallationinstructionsforApache,PHP,andMySQLintheDreamweaverCS3editionhadtogo.
Ididthisforseveralreasons.
Coveringeverycombinationofoperatingsys-temandsoftwarewasbecomingtoocomplicated.
SeparateinstructionsareneededforWindowsXPandVista,aswellasforMacOSX10.
4and10.
5.
WiththereleaseofMySQL5.
1,PHP5.
3,andMacOSX10.
6expectedduringthelifetimeofthisbook,printedinstructionsrapidlygooutofdate.
Perhapsmostimportantly,theall-in-oneinstallationpackages—XAMPPforWindows(http://www.
apachefriends.
org/en/xampp-windows.
html)andMAMPforMacOSX(http://www.
mamp.
info/en/mamp.
html)—arereliableandeasytoinstall.
Windows-andMac-friendlyIhavepersonallytestedeverythinginthisbookinWindowsandMacOSX.
Theoverwhelm-ingmajorityofscreenshotsweretakenonWindowsVista,butIhaveincludedseparatescreenshotsfromtheMacversionwhereappropriate.
Ihavealsopointedoutsignificantdif-ferencesbetweentheWindowsandMacversionsofDreamweaver,althoughtherearen'tmanyofthem.
KeyboardshortcutsaregivenintheorderWindows/Mac,andIpointoutwhenaparticularshortcutisexclusivetoWindows(someDreamweavershortcutsconflictwithExposéandxxivINTRODUCTIONSpotlightintheMacversion).
TheonlyplacewhereIhaven'tgiventheMacequivalentiswithregardtoright-clicking.
SincetheadventofMightyMouse,right-clickingisnownativetotheMac,butifyou'reanold-fashionedkindofguyorgalandstilluseaone-buttonmouse,Ctrl-clickwheneverItellyoutoright-click(I'msureyouknewthatanyway).
SomeMackeyboardshortcutsusetheOption(Opt)key.
Ifyou'renewtoaMacandcan'tfindanOptkeyonyourkeyboard,insomecountriesit'slabeledAlt.
TheCommand(Cmd)keyhasanappleand/oracloverleafsymbol.
UsingthedownloadfilesAllthenecessaryfilesforinthisbookcanbedownloadedfromhttp://www.
friendsofed.
com/downloads.
html.
Thefilesarearrangedinfivetop-levelfolders,asfollows:examples:Thiscontainsthe.
htmland.
phpfilesforalltheexamplesandexercises,arrangedbychapter.
UsetheFileComparefeatureinDreamweaver(seeChapter2)tocheckyourowncodeagainstthesefiles.
Someexercisesprovidepartiallycom-pletedfilesforyoutoworkwith.
Whereindicated,copythenecessaryfilesfromthisfoldertotheworkfilesfoldersoyoualwayshaveabackupifthingsgowrong.
TheeasiestwaytodothisistoopenthefileintheexamplesfolderanduseFileSaveAstosavethefiletoitsnewdestination.
extras:ThiscontainsaDreamweaverextensionthatloadsasuiteofusefulPHPcodefragmentsintotheSnippetspanel,aswellasasavedqueryfortheFindandReplacepanel,andSQLfilestoloaddatafortheexercisesintoyourdatabase.
images:Thiscontainsalltheimagesusedintheexercisesandonlinegallery.
SpryAssets:ThiscontainsthefinishedversionsofSpry-relatedstylesheets.
Withoneexception,itdoesnotcontaintheexternalJavaScriptfilesneededtodisplaySpryeffects,widgets,ordatasets.
DreamweavershouldcopytheJavaScriptfilesanduneditedstylesheetstothisfolderautomaticallywhenyoudotheexercisesasdescribedinthisbook.
workfiles:Thisisanemptyfolder,whereyoushouldbuildthepagesusedintheexercises.
Copythesefolderstothetoplevelofthesitethatyoucreateforworkingwiththisbook(seeChapter2).
SupportforthisbookEveryefforthasbeenmadetoensureaccuracy,butmistakesdoslipthrough.
Ifyoufindwhatyouthinkisanerror—andit'snotlistedonthebook'scorrectionspageathttp://www.
friendsofed.
com—pleasesubmitanerrorreporttohttp://www.
friendsofed.
com/errataSubmission.
html.
WhenEDhasfinishedwiththethumbscrewsandgotmetoadmitI'mwrong,we'llpostthedetailsforeveryone'sbenefitonthefriendsofEDsite.
IalsoplanxxvINTRODUCTIONtopostdetailsonmyownwebsiteathttp://foundationphp.
com/dwcs4/updates.
phpofchangestoDreamweaverorothersoftwarethataffectinstructionsinthebook.
Iwantyoutogetthebestoutofthisbookandwilltrytohelpyouifyourunintodifficulty.
Beforecallingforassistance,though,startwithalittleself-help.
Throughoutthebook,Ihaveadded"Troubleshooting"sectionsbasedheavilyonfrequentlyaskedquestions,togetherwithmyownexperienceofthingsthatarelikelytogowrong.
MakeuseoftheFileComparefeatureinDreamweavertocheckyourcodeagainstthedownloadfiles.
Ifyou'reusingasoft-warefirewall,tryturningitofftemporarilytoseewhethertheproblemgoesaway.
Ifnoneoftheseapproachessolvesyourproblem,scanthechaptersubheadingsinthe"Contents"section,andtrylookingupafewrelatedexpressionsintheindex.
AlsotryaquicksearchontheInternet:Googleandtheotherlargesearchenginesareyourfriends.
Myapologiesifallthissoundsobvious,butanamazingnumberofpeoplespendmoretimewait-ingforananswerinanonlineforumthanitwouldtaketogothroughthesesimplesteps.
Ifyou'restillstuck,visithttp://www.
friendsofed.
com/forums/.
Usethefollowingguidelinestohelpothershelpyou:Alwayscheckthebook'supdatesandcorrectionspages.
Theanswermayalreadybethere.
Searchtheforumtoseewhetheryourquestionhasalreadybeenanswered.
Giveyourmessageameaningfulsubjectline.
It'slikelytogetaswifterresponseandmayhelpotherswithasimilarproblem.
Saywhichbookyou'reusing,andgiveapagereferencetothepointthat'sgivingyoudifficulty.
Giveprecisedetailsoftheproblem.
"Itdoesn'twork"givesnoclueastothecause.
"WhenIdosoandso,xhappens"isalotmoreinformative.
Ifyougetanerrormessage,saywhatitcontains.
Bebriefandtothepoint.
Don'taskhalfadozenquestionsatonce.
It'softenhelpfultoknowyouroperatingsystem,andifit'saquestionaboutPHP,whichversionofPHPandwhichwebserveryou'reusing.
Don'tpostthesamequestionsimultaneouslyinseveraldifferentforums.
Ifyoufindtheanswerelsewhere,havethecourtesytoclosetheforumthreadandpostalinktotheanswer.
ThehelpIgiveinthefriendsofEDandAdobeforumsisnotlimitedtoproblemsarisingfrommybooks,butpleaseberealisticinyourexpectationswhenaskingforhelpinafreeonlineforum.
AlthoughtheInternetneversleeps,thevolunteerswhoanswerquestionscertainlydo.
They'realsobusypeople,whomightnotalwaysbeavailable.
Don'tposthundredsoflinesofcodeandexpectsomeoneelsetoscouritformistakes.
Andifyoudogetthehelpthatyouneed,keepthecommunityspiritalivebyansweringquestionsthatyouknowtheanswerto.
xxviINTRODUCTIONLayoutconventionsTokeepthisbookasclearandeasytofollowaspossible,thefollowingtextconventionsareusedthroughout.
Importantwordsorconceptsarenormallyhighlightedonthefirstappearanceinboldtype.
Codeispresentedinfixed-widthfont.
Neworchangedcodeisnormallypresentedinboldfixed-widthfont.
Pseudo-codeandvariableinputarewritteninitalicfixed-widthfont.
MenucommandsarewrittenintheformMenuSubmenuSubmenu.
WhereIwanttodrawyourattentiontosomething,I'vehighlighteditlikethis:Sometimescodewon'tfitonasinglelineinabook.
Wherethishappens,Iuseanarrowlikethis:.
Thisisavery,verylongsectionofcodethatshouldbewrittenallonthesamelinewithoutabreak.
Ahem,don'tsayIdidn'twarnyou.
xxviiINTRODUCTION

CloudCone:KVM月付1.99美元起,洛杉矶机房,支持PayPal/支付宝

CloudCone的[2021 Flash Sale]活动仍在继续,针对独立服务器、VPS或者Hosted email,其中VPS主机基于KVM架构,最低每月1.99美元,支持7天退款到账户,可使用PayPal或者支付宝付款,先充值后下单的方式。这是一家成立于2017年的国外VPS主机商,提供独立服务器租用和VPS主机,其中VPS基于KVM架构,多个不同系列,也经常提供一些促销套餐,数据中心在洛杉...

Krypt($120/年),2vCPU/2GB/60GB SSD/3TB

Krypt这两天发布了ION平台9月份优惠信息,提供一款特选套餐年付120美元(原价$162/年),开设在洛杉矶或者圣何塞机房,支持Windows或者Linux操作系统。ion.kryptcloud.com是Krypt机房上线的云主机平台,主要提供基于KVM架构云主机产品,相对于KT主站云服务器要便宜很多,产品可选洛杉矶、圣何塞或者新加坡等地机房。洛杉矶机房CPU:2 cores内存:2GB硬盘:...

傲游主机38.4元起,韩国CN2/荷兰VPS全场8折vps香港高防

傲游主机怎么样?傲游主机是一家成立于2010年的老牌国外VPS服务商,在澳大利亚及美国均注册公司,是由在澳洲留学的害羞哥、主机论坛知名版主组长等大佬创建,拥有多家海外直连线路机房资源,提供基于VPS主机和独立服务器租用等,其中VPS基于KVM或者XEN架构,可选机房包括中国香港、美国洛杉矶、韩国、日本、德国、荷兰等,均为CN2或者国内直连优秀线路。傲游主机提供8折优惠码:haixiuge,适用于全...

headersalreadysent为你推荐
中国机电一体化技术应用协会phpcms模板phpcms为什么PHPCMS就是不能出一套好看的默认模板ipad代理在哪买ipad更便宜filezilla_server如何用FileZilla Server新增FTP帐号yixingjia通配符的使用方法缤纷网缤纷的意思是什么灌水机什么是论坛灌水机?在哪里可以下载到呢?关闭评论iOS12抖音直播怎样关闭评论?metinfoMetInfo跟织梦那个比较好?各自的优点跟缺点是什么,社区动力如何大力加强社区基层党组织建设
空间域名 域名转让网 ddos 国外php主机 directadmin 论坛空间 777te 100m免费空间 dd444 vip购优汇 可外链网盘 免费高速空间 中国网通测速 ftp免费空间 爱奇艺会员免费试用 服务器维护 广州虚拟主机 申请免费空间 免费稳定空间 电信主机托管 更多