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

港云网络(¥1/月活动机器),香港CN2 4核4G 1元/月 美国CN2

港云网络官方网站商家简介港云网络成立于2016年,拥有IDC/ISP/云计算资质,是正规的IDC公司,我们采用优质硬件和网络,为客户提供高速、稳定的云计算服务。公司拥有一流的技术团队,提供7*24小时1对1售后服务,让您无后顾之忧。我们目前提供高防空间、云服务器、物理服务器,高防IP等众多产品,为您提供轻松上云、安全防护。点击进入港云网络官方网站港云网络中秋福利1元领【每人限量1台】,售完下架,活...

星梦云:四川100G高防4H4G10M月付仅60元

星梦云怎么样?星梦云资质齐全,IDC/ISP均有,从星梦云这边租的服务器均可以备案,属于一手资源,高防机柜、大带宽、高防IP业务,一手整C IP段,四川电信,星梦云专注四川高防服务器,成都服务器,雅安服务器。星梦云目前夏日云服务器促销,四川100G高防4H4G10M月付仅60元;西南高防月付特价活动,续费同价,买到就是赚到!点击进入:星梦云官方网站地址1、成都电信年中活动机(成都电信优化线路,封锁...

UCloud新人优惠中国香港/日本/美国云服务器低至4元

UCloud优刻得商家这几年应该已经被我们不少的个人站长用户认知,且确实在当下阿里云、腾讯云服务商不断的只促销服务于新用户活动,给我们很多老用户折扣的空间不多。于是,我们可以通过拓展选择其他同类服务商享受新人的福利,这里其中之一就选择UCloud商家。UCloud服务商2020年创业板上市的,实际上很早就有认识到,那时候价格高的离谱,谁让他们只服务有钱的企业用户呢。这里希望融入到我们大众消费者,你...

headersalreadysent为你推荐
设置在线代理支持ipadhttp500http 550错误centos6.5centos 6.5服务器基本配置有哪些德国iphone禁售令德国买iPhone现在多少钱?360和搜狗搜狗浏览器和360极速浏览器你会选择哪个?支付宝账户是什么支付宝帐号,指的是什么帐号 是网营密码吗支持http资费标准联通所有套餐介绍抢米网怎么用小米商城可以快速抢到手机!大侠们 帮帮忙!
yaokan永久域名经常更换 过期域名 服务器租用托管 到期域名查询 俄罗斯vps 视频存储服务器 日志分析软件 免费ddos防火墙 嘟牛 phpmyadmin配置 cdn网站加速 国外免费网盘 新网dns server2008 侦探online winserver2008下载 建站行业 neobux 瓦工工资 招聘瓦工 更多