basicheadersalreadysent

headersalreadysent  时间:2021-04-12  阅读:()
TheEssentialGuidetoDreamweaverCS3withCSS,Ajax,andPHPDavidPowersTheEssentialGuidetoDreamweaverCS3withCSS,Ajax,andPHPCopyright2007byDavidPowersAllrightsreserved.
Nopartofthisworkmaybereproducedortransmittedinanyformorbyanymeans,electronicormechanical,includingphotocopying,recording,orbyanyinformationstorageorretrievalsystem,withoutthepriorwrittenpermissionofthecopyrightownerandthepublisher.
ISBN-13(pbk):978-1-59059-859-7ISBN-10(pbk):1-59059-859-8PrintedandboundintheUnitedStatesofAmerica987654321Trademarkednamesmayappearinthisbook.
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.
Theinformationinthisbookisdistributedonan"asis"basis,withoutwarranty.
Althougheveryprecautionhasbeentakeninthepreparationofthiswork,neithertheauthor(s)norApressshallhaveanyliabilitytoanypersonorentitywithrespecttoanylossordamagecausedorallegedtobecauseddirectlyorindirectlybytheinformationcontainedinthiswork.
Thesourcecodeforthisbookisfreelyavailabletoreadersatwww.
friendsofed.
comintheDownloadssection.
CreditsLeadEditorChrisMillsTechnicalReviewerTomMuckEditorialBoardSteveAnglin,EwanBuckingham,GaryCornell,JonathanGennick,JasonGilmore,JonathanHassell,ChrisMills,MatthewMoodie,JeffreyPepper,BenRenow-Clarke,DominicShakeshaft,MattWade,TomWelshProjectManagerTracyBrownCollinsCopyEditManagerNicoleFloresCopyEditorHeatherLangAssistantProductionDirectorKariBrooks-CoponyProductionEditorKellyWinquistCompositorDinaQuanArtistAprilMilneProofreaderAprilEddyIndexerJulieGradyInteriorandCoverDesignerKurtKramesManufacturingDirectorTomDebolskiInmemoryofmysister,NimbiaNovember21,1941–April24,2007CONTENTSATAGLANCEForeword.
xixAbouttheAuthorxxiAbouttheTechnicalReviewer.
xxiiAcknowledgmentsxxiiiIntroductionxxivChapter1:DreamweaverCS3—YourCreativePartner1Chapter2:BuildingDynamicSiteswithAjaxandPHP.
33Chapter3:GettingtheWorkEnvironmentReady67Chapter4:SettingUpaPHPSite103Chapter5:AddingaTouchofStyle135Chapter6:CreatingaCSSSiteStraightOutoftheBox.
161Chapter7:BuildingSiteNavigationwiththeSpryMenuBar.
183Chapter8:SprucingUpContentwithSpryWidgets209Chapter9:BuildingOnlineFormsandValidatingInput.
247ivChapter10:IntroducingtheBasicsofPHP295Chapter11:UsingPHPtoProcessaForm.
325Chapter12:WorkingwithPHPIncludesandTemplates363Chapter13:SettingUpMySQLandphpMyAdmin.
401Chapter14:StoringRecordsinaDatabase429Chapter15:ControllingAccesstoYourSite473Chapter16:WorkingwithMultipleTables519Chapter17:SearchingRecordsandHandlingDates571Chapter18:UsingXSLTtoDisplayLiveNewsFeedsandXML617Chapter19:UsingSprytoDisplayXML.
653Chapter20:GettingtheBestofBothWorldswithPHPandSpry.
.
.
.
693Index731vCONTENTSForeword.
xixAbouttheAuthorxxiAbouttheTechnicalReviewer.
xxiiAcknowledgmentsxxiiiIntroductionxxivChapter1:DreamweaverCS3—YourCreativePartner1GettingyourbearingsinDreamweaver3Startingup3Creatinganewdocument.
4Settingnewdocumentpreferences5Exploringtheworkspace7Insertbar9Documentwindow11Organizingyourworkspace14Rearrangingpanels14Savingandsharingcustomizedworkspacelayouts14AccessinghiddenfilesandfoldersinWindows15Displayingoptionaltoolbars15Temporarilyhidingallpanels15OrganizingvisualassetswithBridge16Controllingthumbnails17Addingmetadata17Renamingfiles17Dragginganddroppingfiles18viCreatingstandards-compliantwebpages18EnhancedCSSsupport18Layersaredead.
.
.
Welcome,APelements18SeeingtheimpactofCSSchangesinrealtime20Improvedstylesheetmanagement21UsingvisualaidstounderstandyourCSSstructure22Checkingforbrowserbugs23Checkingwhatyourpagewilllooklikeonothermedia24UnderstandingDreamweaver'sapproachtolayout25Drawingabsolutelypositionedelements25LayoutModegoesintoexile.
26GettingthebestoutofCodeview27UsingtheCodingtoolbar27SettingCodeviewoptions29Usingcodehintsandautocompletion30Dynamictoo31Chapter2:BuildingDynamicSiteswithAjaxandPHP.
33Understandinghowdynamicpageswork34Makingpagesdynamicwithclient-sidetechnology35Increasinguserinteractivitywithserver-sidetechnology35WhychoosePHP37TakingdynamicfunctionalityastagefurtherwithAjax38UnderstandingthelimitationsofAjax38Dynamicterminology10139UsingDreamweaverbehaviorsandSpryeffects40AccessingtheBehaviorspanel40Givingelementsauniqueidentity45Removinganidattribute.
47Editingbehaviorandeffectsettings48Removingbehaviorsandeffectscleanly50Restoringadeletedbehaviororeffect50ExploringSpryeffects.
51Appear/Fade52Blind53Grow/Shrink.
53Highlight.
54Shake55Slide55Squish56CreatingawrapperfortheSlideeffect56Applyingmultipleeventstoatriggerelement58HandlingdynamicdatawithSpryandPHP59ComparinghowSpryandPHPhandledatasets59BuildingPHPsiteswithDreamweaver60CONTENTSviiComparingdifferentversionsoffiles61SettinguptheFileComparefeature61UsingFileCompare.
62Comparingtwolocalfilesinthesamesite63Comparingtwolocalfilesindifferentsites63Comparinglocalandremotefiles.
63MeetMarkoftheWeb64Thenextstep.
65Chapter3:GettingtheWorkEnvironmentReady67Decidingwheretotestyourpages.
68CheckingthatyourremoteserversupportsPHP.
69Creatingalocaltestingserver70Choosingwhichversionstoinstall.
70Choosingindividualinstallationoranall-in-onepackage71SettinguponWindows.
72GettingWindowstodisplayfilenameextensions72Choosingtherightwebserver.
73Downloadingthesoftware.
73PreparingforinstallationonWindowsVista73TurningoffUserAccountControltemporarilyonVista74Beforeyoubegin74Checkingthatport80isfree75InstallingApacheonWindows.
76RunningtheApacheMonitoronVista78StartingandstoppingApacheonWindows79ChangingstartuppreferencesordisablingApache79InstallingPHPonWindows.
80TestingyourPHPinstallation(WindowsXPandVista)82ChangingthedefaultApacheport83ChangingthedefaultIISport84SettinguponMacOSX86StartingandstoppingApacheonMacOSX86UpgradingPHPonMacOSX87CheckingyourPHPconfiguration90Understandingtheoutputofphpinfo(90Checkingthelocationofphp.
ini90CheckingPHPCoresettings92Checkinginstalledextensions95Checkingsupported$_SERVERvariables.
96Editingphp.
ini96Accessingphp.
inionMacOSX96ConfiguringPHPtodisplayerrors.
98EnablingPHPextensionsonWindows98Enablingfileuploadsandsessions(Windowsinstaller)99CONTENTSviiiOverridingsettingsonyourremoteserver99Suppressingerrormessages99Overridingdefaultsettingswithini_set(99Using.
htaccesstochangedefaultsettings100Summary100Chapter4:SettingUpaPHPSite103Decidingwheretolocateyoursites104Understandingdocument-androot-relativelinks104Document-relativelinks105Root-relativelinks105Keepingeverythingtogetherintheserverroot106Workingwithvirtualhosts106Findingtheserverroot107MovingtheApacheserverrootonWindows107SettingadefaultfileforApacheonWindows108AddingadefaultPHPfiletoIIS.
109CreatingvirtualhostsonApache110RegisteringvirtualhostsonWindows111RegisteringvirtualhostsonMacOSX113RegisteringvirtualdirectoriesonIIS115DefiningaPHPsiteinDreamweaver115OpeningtheSiteDefinitiondialogbox115TellingDreamweaverwheretofindlocalfiles117TellingDreamweaverhowtoaccessyourremoteserver119Definingthetestingserver121Selectingoptionsforlocaltesting122Selectingoptionsforremotetesting123Settingupothersiteoptions125SettingupforSpry125Savingthesitedefinition126TestingyourPHPsite126Troubleshooting128SettingoptionsforPreviewinBrowser129ManagingDreamweaversites131Nowlet'sgetonwithit132Chapter5:AddingaTouchofStyle135Avoidingbadhabits136StayawayfromthePropertyinspectorforfonts137CreatingsimpleCSSforbeginners138IntroducingtheCSSStylespanel140OpeningtheCSSStylespanel.
141ViewingAllandCurrentmodes141CONTENTSixExploringthePropertiespaneoftheCSSStylespanel142DisplayingCSSpropertiesbycategory142DisplayingCSSpropertiesalphabetically143DisplayingonlyCSSpropertiesthathavebeenset.
143Attachinganewstylesheet144Adding,editing,anddeletingstylerules144Creatingnewstylerules145Definingaselector.
145Definingtherule'sproperties.
146Movingstylerules152Exportingrulestoanewstylesheet152Movingruleswithinastylesheet.
154Movingrulesbetweenexternalstylesheets.
155SettingyourCSSpreferences156Creatingandeditingstylerules.
157Settingthedefaultformatofstylerules.
158Let'sgetcreative159Chapter6:CreatingaCSSSiteStraightOutoftheBox.
161Usingabuilt-inCSSlayout162Choosingalayout163Decidingwheretolocateyourstylerules163Linkingtoexistingstylesheets164Makingsureconditionalcommentsareapplied164Stylingapage165InspectingthecascadeinCurrentmode173Finishingthelayout175RemovingtheCSScomments.
179Howwasitforyou181Chapter7:BuildingSiteNavigationwiththeSpryMenuBar.
183ExaminingthestructureofaSprymenubar185LookingattheXHTMLstructure187Removingamenubar188Editingamenubar188MaintainingaccessibilitywiththeSprymenubar.
189Customizingthestyles.
190Changingthemenuwidth190Changingcolors190Addingborders191Changingthefont192StylingaSprymenubar193Towrapornottowrap,thatisthequestion193Buildingthenavigationstructure.
195Customizingthedesign198Amixedblessing206CONTENTSxChapter8:SprucingUpContentwithSpryWidgets209FeaturescommontoallSprywidgets210Buildingatabbedinterface211Examiningthestructureofthetabbedpanelswidget212Editingatabbedpanelswidget.
214Selectingharmoniouscolors218Convertingtoverticaltabs223Avoidingdesignproblemswithtabbedpanels227UnderstandingSpryobjects228Usingtheaccordionwidget229Examiningthestructureofanaccordion230EditingandstylingaSpryAccordion.
232Usingtheobjectinitializationtochangeaccordiondefaults236Openinganaccordionpanelfromalink238Usingcollapsiblepanels239Examiningthestructureofacollapsiblepanel239Editingandstylingcollapsiblepanels241Openingacollapsiblepanelfromalink243RemovingaSprywidget244Yetmorewidgets245Chapter9:BuildingOnlineFormsandValidatingInput.
247Buildingasimplefeedbackform248Choosingtherightpagetype.
248CreatingaPHPpage249Mixing.
phpand.
htmlpagesinasite250Insertingaforminapage.
250InsertingaforminCodeview251Addingtextinputelements.
252Settingpropertiesfortextinputelements255Convertingatextfieldtoatextareaandviceversa.
257Stylingthebasicfeedbackform257UnderstandingthedifferencebetweenGETandPOST259Passinginformationthroughahiddenfield260Usingmultiple-choiceformelements262Offeringarangeofchoiceswithcheckboxes262Offeringasinglechoicefromadrop-downmenu267Creatingamultiple-choicescrollablelist269Usingradiobuttonstoofferasinglechoice272Organizingformelementsinlogicalgroups274Insertingafieldset274Validatinguserinputbeforesubmission275DoingminimalcheckswiththeValidateFormbehavior275UsingSpryvalidationwidgetsforsophisticatedchecks277UnderstandingthelimitationsofSpryvalidationwidgets278InsertingaSpryvalidationwidget279Removingavalidationwidget279ValidatingatextfieldwithSpry280CONTENTSxiBuildingyourowncustompattern285ValidatingatextareawithSpry286ValidatingasinglecheckboxwithSpry289ValidatingacheckboxgroupwithSpry289Validatingadrop-downmenuwithSpry292Next,let'smovetotheserverside292Chapter10:IntroducingtheBasicsofPHP295IntroducingthebasicsofPHP.
296EmbeddingPHPinawebpage296Endingcommandswithasemicolon.
297Usingvariablestorepresentchangingvalues298Namingvariables298Assigningvaluestovariables298DisplayingPHPoutput.
299Commentingscriptsforclarityanddebugging300Choosingsingleordoublequotationmarks301Usingescapesequencesinstrings303Joiningstringstogether304Addingtoanexistingstring304Usingquotesefficiently.
305Specialcases:true,falseandnull305Workingwithnumbers306Performingcalculations.
306Combiningcalculationsandassignment308Usingarraystostoremultiplevalues308Usingnamestoidentifyarrayelements.
309Inspectingthecontentsofanarraywithprint_r(310Makingdecisions.
311ThetruthaccordingtoPHP312Usingcomparisonstomakedecisions.
313Testingmorethanonecondition314Usingtheswitchstatementfordecisionchains316Usingtheconditionaloperator316Usingloopsforrepetitivetasks.
317Loopsusingwhileanddo.
.
.
while317Theversatileforloop318Loopingthrougharrayswithforeach319Breakingoutofaloop320Usingfunctionsforpresettasks320UnderstandingPHPerrormessages321Nowputittowork322CONTENTSxiiChapter11:UsingPHPtoProcessaForm.
325Activatingtheform327GettinginformationfromtheserverwithPHPsuperglobals327Sendingemail328Scriptingthefeedbackform329UsingBalanceBraces336Testingthefeedbackform337Troubleshootingmail(338Gettingridofunwantedbackslashes338Makingsurerequiredfieldsaren'tblank341Preservinguserinputwhenaformisincomplete345Filteringoutpotentialattacks348Safelyincludingtheuser'saddressinemailheaders350Handlingmultiple-choiceformelements354Redirectingtoanotherpage359Timeforabreather360Chapter12:WorkingwithPHPIncludesandTemplates363Includingtextandcodefromotherfiles.
364IntroducingthePHPincludecommands.
364TellingPHPwheretofindtheexternalfile365Usingsite-root-relativelinkswithincludes368Lighteningyourworkloadwithincludes.
369Choosingtherightfilenameextensionforincludefiles369DisplayingXHTMLoutput370Avoidingproblemswithincludefiles373ApplyingstyleswithDesignTimeStyleSheets374Addingdynamiccodetoaninclude.
375UsingincludestorecyclefrequentlyusedPHPcode.
378Adaptingthemailprocessingscriptasaninclude380Analyzingthescript380Buildingthemessagebodywithagenericscript.
382Avoidingthe"headersalreadysent"error388UsingDreamweavertemplatesinaPHPsite.
389Creatingatemplate390Addingeditableregionstothemastertemplate391Creatingchildpagesfromatemplate393Lockingcodeoutsidethetags.
398Choosingtherighttool398CONTENTSxiiiChapter13:SettingUpMySQLandphpMyAdmin.
401IntroducingMySQL.
402UnderstandingbasicMySQLterminology403InstallingMySQL404InstallingMySQLonWindows404DecidingwhethertoenableInnoDBsupport.
404ChangingthedefaulttabletypeonWindowsEssentials410StartingandstoppingMySQLmanuallyonWindows.
411UsingtheMySQLmonitoronWindows411SettingupMySQLonMacOSX412AddingMySQLtoyourPATH414SecuringMySQLonMacOSX416UsingtheMySQLmonitoronWindowsandMac418UsingMySQLwithphpMyAdmin419SettingupphpMyAdminonWindowsandMac420LaunchingphpMyAdmin423LoggingoutofphpMyAdmin.
424Backupanddatatransfer424Lookingahead427Chapter14:StoringRecordsinaDatabase429SettingupadatabaseinMySQL430Creatingalocaldatabasefortesting.
431CreatinguseraccountsforMySQL432Grantingthenecessaryuserprivileges432Howadatabasestoresinformation436Howprimarykeyswork436Designingadatabasetable437Choosingthetablename438Decidinghowmanycolumnstocreate438ChoosingtherightcolumntypeinMySQL439Decidingwhetherafieldcanbeempty441Storinginputfromthefeedbackform441Analyzingtheform441DefiningatableinphpMyAdmin.
444Understandingcollation446Insertingdatafromthefeedbackform446Troubleshootingtheconnection.
449Troubleshooting451Usingserverbehaviorswithsite-root-relativelinks.
452Inspectingtheserverbehaviorcode453InsertingdataintoSETcolumns454Displayingdatabasecontent457Creatingarecordset.
457Displayingindividualrecords462Displayinglinebreaksintext.
467Mergingforminputwithmailprocessing469Agreatdealachieved471CONTENTSxivChapter15:ControllingAccesstoYourSite473Creatingauserregistrationsystem.
474Definingthedatabasetable.
475Buildingtheregistrationform476Preservingtheintegrityofyourrecords480Buildingcustomserverbehaviors486Completingtheuserregistrationform489Updatinganddeletinguserrecords493AdaptingtheStickyTextFieldserverbehavior496Buildingtheupdateanddeletepages.
497Whatsessionsareandhowtheywork507CreatingPHPsessions507Creatinganddestroyingsessionvariables508Destroyingasession508Checkingthatsessionsareenabled509Registeringandauthenticatingusers509Creatingaloginsystem509Restrictingaccesstoindividualpages511Loggingoutusers512UnderstandinghowDreamweavertracksusers.
513Creatingyourown$_SESSIONvariablesfromuserdetails515Redirectingtoapersonalpageafterlogin515Encryptinganddecryptingpasswords516Feelingmoresecure516Chapter16:WorkingwithMultipleTables519Storingrelatedinformationinseparatetables520Decidingonthebeststructure520Usingforeignkeystolinkrecords521Avoidingorphanedrecords523Definingthedatabasetables524Addinganindextoacolumn525DefiningtheforeignkeyrelationshipinInnoDB526Populatingthetables530Restoringthecontentofthetables530Selectingrecordsfrommorethanonetable530ThefouressentialSQLcommands534SELECT535INSERT537UPDATE538DELETE538Managingcontentwithmultipletables538Insertingnewquotations539UsingaMySQLfunctionandaliastomanipulatedata.
543Insertingnewauthors545UsingvariablesinaSQLquery546Updatingauthors551CONTENTSxvDeletingauthors556Improvingthedeleteform560PerformingacascadingdeletewithInnoDBtables560Updatingquotations.
563Solvingthemysteryofmissingrecords564Deletingquotations567Whatyouhaveachieved.
568Chapter17:SearchingRecordsandHandlingDates571Queryingadatabaseanddisplayingtheresults572Enhancingthelookofsearchresults.
573Displayingthenumberofsearchresults573Creatingstripedtablerows.
574UnderstandinghowDreamweaverbuildsaSQLquery.
576TroubleshootingSQLqueries.
579Settingsearchcriteria580Usingnumericalcomparisons581Searchingwithinanumericalrange583Searchingfortext586Makingasearchcasesensitive586Displayingamessagewhennoresultsarefound587Searchingmultiplecolumns588Searchingwithapartialmatch589Usingwildcardcharactersinasearch589Usingwildcardcharacterswithnumbers592UsingaFULLTEXTindex.
595Solvingcommonproblems598Countingrecords599Eliminatingduplicatesfromarecordset599Reusingarecordset599Understandinghowarepeatregionworks602FormattingdatesandtimeinMySQL603UsingDATE_FORMAT()tooutputuser-friendlydates604WorkingwithdatesinPHP607Settingthecorrecttimezone608CreatingaUnixtimestamp609FormattingdatesinPHP.
610StoringdatesinMySQL612Validatingandformattingdatesfordatabaseinput612Continuingthesearchforperfection.
615Chapter18:UsingXSLTtoDisplayLiveNewsFeedsandXML617AquickguidetoXMLandXSLT.
618WhatanXMLdocumentlookslike.
618UsingHTMLentitiesinXML620UsingXSLTtodisplayXML621Checkingyourserver'ssupportforXSLT621CONTENTSxviPullinginanRSSnewsfeed622HowDreamweaverhandlesserver-sideXSLT623UsingXSLTtoaccesstheXMLsourcedata624Displayingthenewsfeedinawebpage.
632BeingabitmoreadventurouswithXSLT.
633SettingupalocalXMLsource634UnderstandinghowXSLTisstructured636Accessingnestedrepeatingelements637Creatingconditionalregions639Testingasinglecondition.
639Testingalternativeconditions640Sortingelements.
642Formattingelements643Displayingoutputselectively644FilteringnodeswithXPath644UsingXSLTparameterstofilterdata646MoreXMLtocome650Chapter19:UsingSprytoDisplayXML.
653HowSpryhandlesXMLdata654MakingsureSprycanfinddata.
655CreatingaSprydataset.
656DisplayingadatasetinaSprytable662UnderstandingtheSprydatacode.
668ValidatingpagesthatuseSpry668TheflyinSpry'sointment.
669Displayingadatasetasalist670What'sthedifferencebetweenrepeatandrepeatchildren674Casestudy:BuildingaSpryimagegallery676Planningthegallery676Dynamicallyselectingthegallerydataset677ControllingthestructurewithCSS.
677Puttingeverythingtogether.
678Activatingtheeventhandling688Distinguishingbetweendatasets688Creatingadatasetdynamically689Nearlythere691Chapter20:GettingtheBestofBothWorldswithPHPandSpry.
.
.
.
693GeneratingXMLdynamically694Preparingthedatabasetable695UsingphpMyAdmintogenerateXML696UsingtheXMLExportextension697Updatingtheincludesfolder.
702BuildingXMLmanuallyfromarecordset703Usingaproxyscripttofetcharemotefeed706CONTENTSxviiCreatinganXMLdocumentfromadynamicsource707SettingpermissionforPHPtowritefiles708UsingPHPtowritetoafile.
708UsingSpryinpagesthatworkwithoutJavaScript711HowtoincorporateaSprydatasetinanordinarywebpage711UsingXHTMLwithSpry716Casestudy:MakingtheSprygalleryaccessible717CreatingthegallerywithPHP.
717GeneratingtheXMLsourceswithPHP.
725EnhancingtheaccessiblegallerywithSpry727Theendofalongjourney729Index731CONTENTSxviiiFOREWORDTheMacromediacommunitywasunique.
Therewasasynergyamongdevelopers,designers,marketers,andtheMacromediaproductteamsthatkepttheproductlinealiveandgrowingyearafteryear.
Isay"was,"becauseMacromediaisnowpartofAdobe.
SinceAdobeacquiredMacromedia,thecommunityhasgottenlarger.
Adobedidnotpreviouslyhaveareputationforfosteringacommunityspirit,however,eventhoughtheAdobeumbrellaisnowovertheentireformer-Macromediaproductline,thecommunityhasflourishedandbecomeevenmorepervasive.
AdobenowfeelsmorelikeMacromediathanevenMacromediadid,becauseAdobehassomehowtakenthebestofMacromediaandmadeitevenbetter.
Withthatacquisition,wehaveoneofthelargestsoftwarerolloutsever—theCS3release,whichcombinedallofMacromedia'sbiggestproductlineswithAdobe'sbiggestproductlinesintoonemassiverelease.
Ifitwereanormalproductreleasecycle,thatwouldbebignewsbyitself,butwithallthemajorenhancementsinmostoftheproductsintheline,it'sevenbigger.
DreamweaverCS3containssomegreatnewfeatures,mostofwhicharecoveredextensivelyinthisbook,includingtheSprytools,pagelayouts,andCSStools.
DreamweaverCS3(orDreamweaver9,ifyou'recounting)isthefirstAdobeversionofDreamweaver,butasidefromtheAdobenameandthePhotoshopintegration,itisinstantlyrecognizableasthesamegreatprogram.
Oneofthethingsthatmakethecommunitygreatistheinvolvementofthecompany(Macromedia,nowAdobe)withthedesigner/developercommunity.
Adobeactivelyseeksfeedbackonproductsandwelcomesgiveandtake;itdoesn'tjustpaylipservicetothecon-ceptofadevelopers'community.
Thefeedbackformsonthewebsitegodirectlytotheproductteam,andproductengineerscontactcustomersdirectly.
ThiskindofinvolvementbroughtPHPintoDreamweaverinthefirstplace,andthiskindofinvolvementkeepsDreamweaveratthetopoftheheapofallthewebdevelopmenttoolsavailable.
TogiveanexampleoftheAdobecommunityinvolvement,Adobesentateamofrepresen-tativestomeetwitheveryoneattherecentTODConconvention,whichtypicallyattractsasmall,closelyknitgroupofDreamweaverdesignersanddevelopers.
Theydidn'tjustsendacoupleofmarketingpeopleorlow-leveloperatives;theyflewinoveradozenofthecreamofthecrop,includingproductmanagers,developmentteammanagers,qualityassurancemanagers,andothersfromlocationsinSanJose,SanDiego,Romania,andGermany.
Onthefirstdayoftheconference,DreamweaverproductmanagerKennethBergerintroducedxixtheteam,whichlookedlikeawallofAdobeatthefrontoftheroom,andledasessionaboutwhatisrightandwrongwithDreamweaver,andtheattendeesoftheconferencegottogivetheirinputastowhatDreamweaverisdoingwellandwhatcouldbeimproved.
Therewasplentyofpraisealongwithplentyofventingthattheproductteamwillusedirectly.
Thatwasn'ttheendofitthough.
Theteamwasinattendanceforthebulkoftheconference,walkingaroundwithnotebooks,gettingvaluablefeedbackthatwillhelpshapethenextver-sionoftheproduct.
Thisisthekindofpersonalcontactthatkeepsthecommunityandtheproductthriving.
CouplethecompanyinvolvementwiththeextensibilityofDreamweaver,whichkeepsthedevelopmentcommunitybuzzingwithcreativitybyextendingtheprogramtodothingsthatitwon'tdooutofthebox,andyouhaveaprogramthatgetsexponentiallybetterwitheachrelease.
IsaythesamethingeverytimeanewversionofDreamweavercomesout:Icouldnevergobacktothepreviousversion.
IfeelthesamewayaboutthelatestCS3release.
I'venevermetDavidPowers,butknowhimwellthroughtheAdobeDreamweavercommu-nity.
HeisafellowAdobeCommunityExpertwhofreelyshareshisknowledgeoftheproductinAdobesupportforums,amongotherplaces.
IknowDavidbyreputationasoneofthemostthoroughyeteasy-to-readauthorsonthescenetodayandasoneofthemostpassion-ateandvocalDreamweaverexpertsintheworld.
AmongthescoresofDreamweaverbooks,David'sarethebooksthatIpersonallyrecommendtopeopleasthebest.
Thisbookisnoexception.
Havingwrittenafewbooksinthepastmyself,Iknowit'snoeasytask.
Asthetechnicalreviewerofthisbook,itwasfrequentlyachallengeformetofindthingstosayaboutit—Davidleavesnostoneunturnedinhisquesttoprovidethebestinstructionalmate-rialontheshelvestoday.
Thatisexactlywhatyouareholdinginyourhandsrightnow.
TomMuckJune2007FOREWORDxxABOUTTHEAUTHORDavidPowersisanAdobeCommunityExpertforDreamweaverandauthorofaseriesofhighlysuccessfulbooksonPHP,includingPHPSolutions:DynamicWebDesignMadeEasy(friendsofED,ISBN-13:978-1-59059-731-6)andFoundationPHPforDreamweaver8(friendsofED,ISBN-13:978-1-59059-569-5).
Asaprofessionalwriter,hehasbeeninvolvedinelectronicmediaformorethan30years,firstwithBBCradioandtelevisionandmorerecentlywiththeInternet.
HisclearwritingstyleisvaluednotonlyintheEnglish-speakingworld;severalofhisbookshavebeentranslatedintoSpanishandPolish.
Whatstartedasamildinterestincomputingwastransformedalmostovernightintoapassion,whenDavidwaspostedtoJapanin1987asBBCcorrespondentinTokyo.
WithnocorporateITdepartmentjustdownthehallway,hewasforcedtolearnhowtofixeverythinghimself.
Whennottinkeringwiththeinnardsofhiscomputer,hewasreportingforBBCTVandradioontheriseandcollapseoftheJapanesebubbleeconomy.
SinceleavingtheBBCtoworkindependently,hehasbuiltupanonlinebilingualdatabaseofeconomicandpoliticalanalysisforJapaneseclientsofaninternationalconsultancy.
WhennotpoundingthekeyboardwritingbooksordreamingofnewwaysofusingPHPandotherprogramminglanguages,Davidenjoysnothingbetterthanvisitinghisfavoritesushirestaurant.
HehasalsotranslatedseveralplaysfromJapanese.
xxiABOUTTHETECHNICALREVIEWERTomMuckisthecoauthorofnineMacromedia-relatedbooks.
TomalsowritesextensionsforDreamweaver,availableathissitewww.
tom-muck.
com.
TomisalsotheleadPHPandColdFusionprogrammerforCartweaver,theonlineshoppingcartsoftwarepackage,andafoundingmemberofCommunityMX,whohaswrittencloseto100articlesonPHP,ColdFusion,SQL,andrelatedtopics.
TomisanextensibilityexpertfocusedontheintegrationofAdobe/MacromediaproductswithColdFusion,ASP,PHP,andotherlanguages,applications,andtechnologies.
Tomwasrec-ognizedforthisexpertisein2000whenhereceivedMacromedia'sBestUltraDevExtensionAward.
Hehasalsowrittennumerousarticlesformagazines,journals,andwebsitesandspeaksatconferencesonthisandrelatedsubjects.
xxiiACKNOWLEDGMENTSForanauthor,writingabookmeanslong,lonelyhoursatthekeyboard,butthevolumeyou'reholdinginyourhands—orreadingonscreenifyou'vegottheelectronicversion—isverymuchacollaborativeeffort.
Theideaofwritinganexpandedbookonthedynamicfea-turesofDreamweavercamefrommyeditor,ChrisMills,whowasgraciousenoughnottocomplaineachtimeIchangedmymindaboutthefinalshapeofthebook.
MythanksgotohimandalltheproductionstaffatApress/friendsofEDforkeepingthismammothprojectontarget.
I'malsoindebtedtothedevelopmentteamatAdobe,whogavemeasneakpreviewoftheirplansforDreamweaverCS3veryearlyinthedevelopmentprocessandhelpedmeunder-standhowmanyofthenewfeatureswork.
Attimes,I'msuretheywereexasperatedbymypersistentquestionsandtheoccasionallyhectoringtoneofmysuggestionsforimprove-ments,buttheyneverletitshow.
Aparticularthankyougoestomytechnicalreviewer,TomMuck.
I'mdeeplyhonoredthatsucharespectedexpertonDreamweaveragreedtoundertakethisrole.
Tom'sin-depthknowledgeofDreamweaver,PHP,andSQLsavedmefromsomeembarrassingmistakes(anythatremainaremyresponsibilityentirely).
Healsoprovidedhelpfuladvicewhenhethoughtmyexplanationsweretoooblique.
Mybiggestthanksofallgotoyou,thereader.
Withoutyou,noneofthiswouldbeworth-while.
Ifyouenjoythisbookorfindituseful,tellallyourfriendsandgetthemtobuyacopy.
Don'tlendittothem.
Youmightnevergetitback!
xxiiiINTRODUCTIONTheEssentialGuidetoDreamweaverCS3withCSS,Ajax,andPHP.
.
.
Wow,thetitle'salmostaslongasthebook!
Andwhat'sthat"essential"doinginthere"Essential"suggeststhatit'sabookyoucan'tdowithout.
So,who'sitforandwhyshouldyoubereadingitDreamweaverisn'tadifficultprogramtouse,butit'sdifficulttousewell.
It'spackedwithfeatures,andmorehavebeenaddedwitheachnewversion.
Theuserinterfacehasbarelychangedinthelastfewversions,soit'seasytooverlooksomegreatproductivityboostersifyoudon'tknowwheretofindthem.
IhavebeenusingDreamweaveronadailybasisforaboutsevenyears,pushingittothelimitandfindingoutitsgoodpoints—anditsbadones,too.
So,theideaofthisbookistohelpyougetthebestoutofDreamweaverCS3,withparticularemphasisonbuildingdynamicwebpagesusingtheimprovedCSSmanagementfeatures,Spry—theAdobeimplementationofAjax—andthePHPserverbehaviors.
ButhowcanyougetthebestoutofthisbookWhothisbookisforIfyou'reathomewiththebasicsof(X)HTMLandCSS,thenthisbookisforyou.
Ifyouhaveneverbuiltawebsitebeforeanddon'tknowthedifferencebetweenantagandyourAuntJemima,you'llprobablyfindthisbookabitofastruggle.
Youdon'tneedtoknoweverytagandattributebyheart,butIfrequentlydiveintoCodeviewandexpectyoutorollupyoursleevesandgettogripswiththecode.
It'snotcodingforcoding'ssake;theideaistoadaptthecodegeneratedbyDreamweavertocreatewebsitesthatreallywork.
IexplaineverythingasIgoalongandsteerclearofimpenetrablejargon.
AsforCSS,youdon'tneedtobeacandidateforinclusionintheCSSZenGarden(www.
csszengarden.
com),butyoushouldunderstandthebasicprinciplesbehindcreatingastylesheet.
xxivWhataboutAjaxandPHPIdon'tassumeanypriorknowledgeinthesefields.
Ajaxcomesinmanydifferentguises;theflavorusedinthisbookisSpry,theAdobeAjaxframework(codelibrary)thatisintegratedintoDreamweaverCS3.
Althoughyoudosomehand-codingwithSpry,mostfeaturesareaccessedthroughintuitivedialogboxes.
DreamweaveralsotakescareofalotofthePHPcoding,butitcan'tdoeverything,soIshowyouhowtocustomizethecodeitgenerates.
Chapter10servesasacrashcourseinPHP,andChapter11putsthatknowledgetoimmediateusebyshowingyouhowtosendanemailfromanonlineform—oneofthethingsthatDreamweaverdoesn'tautomate.
Thisbookdoesn'tattempttoteachyouhowtobecomeaPHPprogrammer,butbythetimeyoureachthefinalchapter,youshouldhavesufficientconfidencetolookascriptintheeyewithoutflinching.
DoIneedDreamweaverCS3Mostdefinitely,yes.
AlthoughthePHPfeaturesinDreamweaverCS3areidenticaltoDreamweaver8.
0.
2,you'llmissoutonroughlyhalfthebook,becausethechaptersdevotedtoCSSandSpryarebasedonCS3.
Inapinch,youcoulddownloadthefreeversionofSpryfromhttp://labs.
adobe.
com/technologies/spry/andhand-codeeverythinginanearlierversionofDreamweaver,butthefocusinthisbookisonusingtheCS3interfaceforSpry.
IfyouwanttousePHPinanearlierversion,IsuggestyoureadmyFoundationPHPforDreamweaver8(friendsofED,ISBN-13:978-1-59059-569-5)instead.
HowdoesthisbookdifferfrommypreviousonesIhateitwhenIbuyabookwrittenbyanauthorwhomI'veenjoyedbeforeandfindmyselfreadingfamiliarpageafterfamiliarpage.
ThisbookisintendedtoreplaceFoundationPHPforDreamweaver8,soalotofmaterialisinheritedfromthatbook.
There'salsosomeover-lapwithPHPSolutions:DynamicWebDesignMadeEasy(friendsofED,ISBN-13:978-1-59059-731-6),butIestimatethatatleast60percentofthematerialwaswrittenexclusivelyforthisbook.
Everychapterhasbeencompletelyrevisedandrewritten,andthechaptersonCSSandSpryarebrandnew.
EvenwhereIhaverecycledmaterialfromthetwopreviousbooks,Ihaverevisedand(Ihope)improvedthescripts.
Forexample,themailprocessingscripthasincreasedprotectionagainstemailheaderinjectionattacks,andIhaveadapteditsothatitcanbereusedmoreeasilywithdifferentonlineforms.
Thescriptalsoinsertstheformcontentintoadatabaseaftersendingtheemail.
IhaveaddedasectiononusingDreamweavertemplatesinaPHPsite.
There'sanewchapteronbuildingsearchqueries,andthechapteronmultipledatabasetablestellsyouhowtouseforeignkeyconstraintsifyourMySQLserversupportsInnoDB.
ThefinalchaptershowsyouhowtogenerateXMLontheflyfromadatabaseandenhanceaPHPsitebyintegratingsomefeaturesofSprydatamanagement.
INTRODUCTIONxxvHowthisbookisorganizedMypreviousbookshavetakenalinearapproach,butIhavestructuredthisonetomakeiteasierforyoutodipinandout,usingtheTableofContentsandIndextofindsubjectsthatinterestyouandgoingstraighttothem.
So,ifyouwanttolearnhowtocreatetabbedpanelswithSpry,youcangodirectlytoChapter8.
Althoughtheexamplepagesuseadesignthatwascreatedinanearlierchapter,youdon'tneedtohaveworkedthroughtheotherchapterfirst.
Nevertheless,thereisaprogressivelogictotheorderofthechapters.
Chapters1and2serveasanoverviewofthewholebook,explainingwhat'snewandwhathaschangedinDreamweaverCS3.
Chapter2alsoexplainsindetailhowtouseSpryeffects.
Theyaresimpletoapplyanddon'trequireknowledgeofCSSorPHP.
Ifyou'renewtoDreamweaver,thesechaptershelpyoufindyourwayaroundessentialaspectsoftheDreamweaverinterface.
Chapters3and4showyouhowtosetupyourworkenvironmentforPHPandDreamweaver.
IfyoualreadyhavealocaltestingenvironmentforPHP,youcanskipmostofthematerialinthesechapters.
However,IurgeyoutofollowtheinstructionsattheendofChapter3tocheckyourPHPconfiguration.
ThesectioninChapter4aboutdefiningyourtestingserverinDreamweaverisalsoessentialreading.
Thesetwosubjectsarethemostfrequentcausesofproblems.
Afewminutescheckingthatyouhavesetupeverythingcorrectlywillsavealotofheartachelater.
Chapters5and6coverindepthhowDreamweaverhandlesCSS.
Ifyou'rerelativelynewtoCSS,Chapter5showsyouhownottouseDreamweavertocreatestylerules.
Formoreadvancedreaders,itprovidesausefuloverviewofthevariousCSSmanagementtools,includingtheabilitytoreorderthecascadeandmoverulestodifferentstylesheetswithouteverleavingDesignview.
Chapter6usesoneofthe32built-inCSSlayoutstocreateanele-gantsite,andintheprocess,unravelsthemysteriesoftheCSSStylespanel.
Chapters7and8returntoSpry,exploringtheSpryMenuBarandthetabbedpanels,accor-dion,andcollapsiblepaneluserinterfacewidgets.
BecausethesewidgetsmakeextensiveuseofCSS,you'llfindthesechapterseasiertofollowifyou'reuptospeedontheprevioustwochapters.
Ofcourse,ifyou'realreadyaCSSwhizkid,jumprightin.
Chapter9seesthestartofpracticalPHPcoverage,showingyouhowtoconstructanonlineform.
ThesecondhalfofthechaptercompletestheroundupofSprywidgets,showingyouhowtouseSprytocheckuserinputbeforeaformissubmitted.
Thisisclient-sidevalidationlikeyou'veneverseenbefore.
IfyouwanttoconcentrateonPHP,youcanskipthesecondhalfofthechapterandcomebacktoitlater.
Asnotedearlier,Chapter10isacrashcourseinPHP.
Ihaveputeverythingtogetherinasinglechaptersothatitservesasausefulquickreferencelater.
Ifyou'renewtoPHP,justskimthefirstparagraphorsoofeachsectiontogetafeelforthelanguageandcomebacktoitlatertocheckonspecificpoints.
Chapters11and12giveyouhands-onpracticewithPHP,buildingthescripttoprocesstheformcreatedinChapter9.
NewcomerstoPHPshouldtakethesechaptersslowly.
Althoughyoudon'tneedtobecomeatop-levelprogrammertousePHPinDreamweaver,anINTRODUCTIONxxviunderstandingofthefundamentalsisvitalunlessyou'rehappybeinglimitedtoverybasicdynamicpages.
Ifyou'reinahurry,youcanusethefinishedmail-processingscriptfromChapter12.
Itshouldworkwithmostonlineforms,butyouwon'tbeabletocustomizeittoyourownneedsifyoudon'tunderstandhowitworks.
Chapter12alsolooksatusingDreamweavertemplatesinaPHPsite.
Chapter13getsyoureadytobringoutDreamweaver'sbiggunsbyguidingyouthroughtheinstallationoftheMySQLdatabaseandagraphicinterfacecalledphpMyAdmin.
Thischapteralsocoversdatabasebackupandtransferringadatabasetoanotherserver.
Chapters14through17showyouhowtobuilddatabase-drivenwebpagesusingPHP,MySQL,andDreamweaver'sPHPserverbehaviors.
You'llalsolearnthebasicsofSQL(StructuredQueryLanguage),thelanguageusedtocommunicatewithallmajorrelationaldatabases.
Togetthemostoutofthissection,youneedtohaveagoodunderstandingofthematerialinthefirsthalfofChapter9.
You'lllearnhowtocreateyourowncontentmanage-mentsystem,passwordprotectsensitivepartsofyoursite,andbuildsearchforms.
Thefinalthreechapters(18–20)introduceyoutoworkingwithXML(ExtensibleMarkupLanguage),theplatform-neutralwayofpresentinginformationinastructuredmanner.
XMLisoftenusedfornewsfeeds,soChapter18setstheballrollingbyshowingyouhowtouseDreamweaver'sXSLTransformationserverbehaviortodrawnewsitemsfromaremotesiteandincorporatetheminawebpage.
Chapter19explainshowtogenerateaSprydatasetfromXMLanduseittocreateanonlinephotogallery.
TheattractionofSpryisthatitprovidesaseamlessuserexperiencebyrefresh-ingonlythosepartsofapagethatchange,withoutreloadingthewholepage.
Thedisadvan-tageisthat,likemostAjaxsolutions,theunderlyingcodeleavesnocontentforsearchenginestoindex,orforthebrowsertodisplayifJavaScriptisdisabled.
So,Chapter20showshowtogetthebestofbothworldsbycreatingthebasicfunctionalitywithPHPandenhanc-ingitwithSpry.
ThefinalchapteralsoshowsyouhowtogenerateyourownXMLdocumentsfromcontentstoredinyourdatabase.
Whatthisbookisn'tIliketocreditmyreaderswithintelligence,sothisbookisn't"DreamweaverCS3fortheClueless"or"DreamweaverCS3forCompleteBeginners.
"Youdon'tneedtobeanexpert,butyoudoneedtohaveaninquiringmind.
Itdoesn'tteachthebasicsofwebdesign,nordoesitattempttolisteverysinglefeatureinDreamweaverCS3.
Thereareplentyofotherbookstofillthatgap.
However,byworkingthroughthisbook,you'llgainanin-depthknowl-edgeofthemostimportantfeaturesofDreamweaver.
Ahighproportionofthebookisdevotedtohands-onexercises.
Thepurposeistodemon-strateaparticulartechniqueorfeatureofDreamweaverinameaningfulway.
Ratherthanracingthroughthestepstofinishthemasquicklyaspossible,readtheexplanations.
Ifyouunderstandwhyyou'redoingsomething,you'refarmorelikelytorememberitandbeabletoadaptittoyourownneeds.
INTRODUCTIONxxviiWindows-andMac-friendlyEverythinginthisbookhasbeentestedonWindowsXPSP2,WindowsVista,andMacOSX10.
4—theminimumrequiredversionsforDreamweaverCS3.
TheoverwhelmingmajorityofscreenshotsweretakenonWindowsVista,butIhaveincludedseparatescreenshotsfromWindowsXPandMacOSXwhereappropriate.
Chapters3and13haveseparatesectionsforWindowsandMactoguideyouthroughthesetupofPHPandMySQL,soMacusersaren'tlefttryingtoadaptinstructionswrittenforacompletelydifferentoperatingsystem.
KeyboardshortcutsaregivenintheorderWindows/Mac,andIpointoutwhenaparticularshortcutisexclusivetoWindows(someDreamweavershortcutsconflictwithExposéandSpotlightintheMacversion).
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.
AnoteaboutversionsusedComputersoftwareisconstantlyevolving,and—muchthoughIwouldlikeittodoso—itdoesn'tstandstillsimplybecauseIhavewrittena700-oddpagebook.
Abookrepresentsasnapshotintime,andtimeneverstandsstill.
EverythingrelatedtoDreamweaverinthisbookisbasedonbuild3481ofDreamweaverCS3.
ThisistheversionthatwasreleasedinApril2007.
ThebuildnumberisdisplayedonthesplashscreenwhenyoulaunchDreamweaver.
YoucanalsocheckthebuildnumberbygoingtoHelpAboutDreamweaver(DreamweaverAboutDreamweaveronaMac)andclickingthecreditsscreen.
ThisbuildofDreamweavershippedwithSpryversion1.
4.
Aboutonemonthlater,AdobereleasedSpryversion1.
5.
Atthetimethisbookwasreadytogototheprinters,theinformationIhadreceivedindi-catedthat,becauseSpryisstillevolving,Dreamweaverwon'tautomaticallybeupdatedforeachnewreleaseofSpry.
Anychangesthataffectthisbookwillbepostedonmywebsiteathttp://foundationphp.
com/egdwcs3/updates.
php.
YoushouldalsocheckmywebsiteforanyupdatesconcerningPHP,MySQL,andphpMyAdmin.
Theinstructionsinthisbookarebasedonthefollowingversions:PHP5.
2.
1MySQL5.
0.
37phpMyAdmin2.
10.
1INTRODUCTIONxxviiiUsingthedownloadfilesAllthenecessaryfilesforinthisbookcanbedownloadedfromwww.
friendsofed.
com/downloads.
html.
Thefilesarearrangedinfivetop-levelfolders,asfollows:examples:Thiscontainsthe.
htmland.
phpfilesforalltheexamplesandexercises,arrangedbychapter.
UsetheFileComparefeatureinDreamweaver(seeChapter2)tocheckyourowncodeagainstthesefiles.
Someexercisesprovidepartiallycom-pletedfilesforyoutoworkwith.
Whereindicated,copythenecessaryfilesfromthisfoldertotheworkfilesfoldersoyoualwayshaveabackupifthingsgowrong.
images:Thiscontainsalltheimagesusedintheexercisesandonlinegallery.
SpryAssets:ThiscontainsthefinishedversionsofSpry-relatedstylesheets.
Withoneexception,itdoesnotcontaintheexternalJavaScriptfilesneededtodisplaySpryeffects,widgets,ordatasets.
DreamweavershouldcopytheJavaScriptfilesanduneditedstylesheetstothisfolderautomaticallywhenyoudotheexercisesasdescribedinthisbook.
tools:ThiscontainsaDreamweaverextensionthatloadsasuiteofusefulPHPcodefragmentsintotheSnippetspanel,aswellasasavedqueryfortheFindandReplacepanel,andSQLfilestoloaddatafortheexercisesintoyourdatabase.
workfiles:Thisisanemptyfolder,whereyoushouldbuildthepagesusedintheexercises.
Copythesefolderstothetoplevelofthesitethatyoucreateforworkingwiththisbook(seeChapter4).
SupportforthisbookEveryefforthasbeenmadetoensureaccuracy,butmistakesdoslipthrough.
Ifyoufindwhatyouthinkisanerror—andit'snotlistedonthebook'scorrectionspageatwww.
friendsofed.
com—pleasesubmitanerrorreporttowww.
friendsofed.
com/errataSubmission.
html.
WhenEDhasfinishedwiththethumbscrewsandgotmetoadmitI'mwrong,we'llpostthedetailsforeveryone'sbenefitonthefriendsofEDsite.
Ialsoplantopostdetailsonmyownwebsiteathttp://foundationphp.
com/egdwcs3/updates.
phpofchangestoDreamweaverorothersoftwarethataffectinstructionsinthebook.
Iwantyoutogetthebestoutofthisbookandwilltrytohelpyouifyourunintodifficulty.
Beforecallingforassistance,though,startwithalittleself-help.
Throughoutthebook,Ihaveadded"Troubleshooting"sectionsbasedheavilyonfrequentlyaskedquestions,togetherwithmyownexperienceofthingsthatarelikelytogowrong.
MakeuseoftheFileComparefeatureinDreamweavertocheckyourcodeagainstthedownloadfiles.
Ifyou'reusingasoft-warefirewall,tryturningitofftemporarilytoseewhethertheproblemgoesaway.
INTRODUCTIONxxixIfnoneoftheseapproachessolvesyourproblem,scanthechaptersubheadingsintheTableofContents,andtrylookingupafewrelatedexpressionsintheIndex.
AlsotryaquicksearchontheInternet:Googleandtheotherlargesearchenginesareyourfriends.
Myapologiesifallthissoundsobvious,butanamazingnumberofpeoplespendmoretimewaitingforananswerinanonlineforumthanitwouldtaketogothroughthesesimplesteps.
Ifyou'restillstuck,visitwww.
friendsofed.
com/forums/.
Usethefollowingguidelinestohelpothershelpyou:Alwayscheckthebook'supdatesandcorrectionspages.
Theanswermayalreadybethere.
Searchtheforumtoseeifyourquestionhasalreadybeenanswered.
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.
INTRODUCTIONxxxLayoutconventionsTokeepthisbookasclearandeasytofollowaspossible,thefollowingtextconventionsareusedthroughout.
Importantwordsorconceptsarenormallyhighlightedonthefirstappearanceinboldtype.
Codeispresentedinfixed-widthfont.
Neworchangedcodeisnormallypresentedinboldfixed-widthfont.
Pseudo-codeandvariableinputarewritteninitalicfixed-widthfont.
MenucommandsarewrittenintheformMenuSubmenuSubmenu.
WhereIwanttodrawyourattentiontosomething,I'vehighlighteditlikethis:Sometimescodewon'tfitonasinglelineinabook.
Wherethishappens,Iuseanarrowlikethis:.
Thisisavery,verylongsectionofcodethatshouldbewrittenallonthesamelinewithoutabreak.
Ahem,don'tsayIdidn'twarnyou.
INTRODUCTIONxxxi

Spinservers:美国圣何塞机房少量补货/双E5/64GB DDR4/2TB SSD/10Gbps端口月流量10TB/$111/月

Chia矿机,Spinservers怎么样?Spinservers好不好,Spinservers大硬盘服务器。Spinservers刚刚在美国圣何塞机房补货120台独立服务器,CPU都是双E5系列,64-512GB DDR4内存,超大SSD或NVMe存储,数量有限,机器都是预部署好的,下单即可上架,无需人工干预,有需要的朋友抓紧下单哦。Spinservers是Majestic Hosting So...

A400:36元/季,16.8/月kvm架构,线路优质,延迟低

A400互联是一家成立于2020年的商家,主要推行洛杉矶服务器采用kvm架构,线路优质,延迟低,稳定性高!全场产品对标腾讯云轻量,服务器线路有有美国洛杉矶cn2_gia、香港cn2+cmi,目前推行的vps服务器均为精心挑选的优质线路机房,A400互联推出了夏季优惠洛杉矶5折、香港7折促销活动,质量可靠,价格实惠!二:优惠码洛杉矶五折优惠码:20210620香港cn2七折优惠码:0710三、优惠方...

极光KVM美国美国洛杉矶元/极光kvmCN7月促销,美国CN2 GIA大带宽vps,洛杉矶联通CUVIP,14元/月起

极光KVM怎么样?极光KVM本月主打产品:美西CN2双向,1H1G100M,189/年!在美西CN2资源“一兆难求”的大环境下,CN2+大带宽 是很多用户的福音,也是商家实力的象征。目前,极光KVM在7月份的促销,7月促销,美国CN2 GIA大带宽vps,洛杉矶联通cuvip,14元/月起;香港CN2+BGP仅19元/月起,这次补货,机会,不要错过了。点击进入:极光KVM官方网站地址极光KVM七月...

headersalreadysent为你推荐
yw372:Com帮个忙 这个视频源地址怎么找http://video.kuaiji.com/congye/diansuanhua/372/3097phpwindPHPWIND和DISCUZ有什么区别2019支付宝五福支付宝五福是哪五福?dell服务器bios设置戴尔服务器主板怎么设置U盘启动曲目ios科创板首批名单科创板开市后,可以通过哪些基金参与科创板投资和打新股?厦门三五互联科技股份有限公司厦门三五互联怎么样?网站方案设计求一篇校园网络设计的方案中国保健养猪网135保健养猪,135天可以出栏吗?网站制作套餐制作一个公司网站究竟需要多少费用呢??
域名注册使用godaddy 看国外视频直播vps 香港ufo 阿里云邮箱登陆首页 腾讯云数据库 好看的桌面背景大图 php探针 商务主机 什么是刀片服务器 seednet 新睿云 免费网络 lamp兄弟连 umax forwarder 建站论坛 服务器机柜 卡巴斯基免费版 云主机 kosspp 更多