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

提速啦香港独立物理服务器E3 16G 20M 5IP 299元

提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...

Raksmart:香港高防服务器/20Mbps带宽(cn2+bgp)/40G-100Gbps防御

RAKsmart怎么样?RAKsmart香港机房新增了付费的DDoS高防保护服务,香港服务器默认接入20Mbps的大陆优化带宽(电信走CN2、联通和移动走BGP)。高防服务器需要在下单页面的IP Addresses Option里面选择购买,分:40Gbps大陆优化高防IP-$461/月、100Gbps国际BGP高防IP-$692/月,有兴趣的可以根据自己的需求来选择!点击进入:RAKsmart官...

Contabo美国独立日促销,独立服7月€3.99/月

Contabo自4月份在新加坡增设数据中心以后,这才短短的过去不到3个月,现在同时新增了美国纽约和西雅图数据中心。可见Contabo加速了全球布局,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。为了庆祝美国独立日和新增数据中心,自7月4日开始,购买美国地区的VPS、VDS和独立服务器均免设置费。Contabo是德国的老牌服务商,...

headersalreadysent为你推荐
diskmediacisco2960配置思科的交换机怎么配置全国企业信息查询有没有可以查全国企业信息的工商查询网站支付宝注册网站在哪里注册支付宝补贴esetcsamy开放平台微信的开放平台是干什么用的oa办公软件价格一个oa系统多少钱欢迎光临本店宾馆欢迎语都有哪些? 越多越专业越好本帖隐藏的内容本帖隐藏的内容需要回复才可以浏览 是怎么弄的 我像弄1个 178的帖
免费国外空间 新通用顶级域名 百度云100as 青果网 一点优惠网 帽子云 刀片服务器是什么 cdn联盟 美国在线代理服务器 傲盾官网 微软服务器操作系统 免费私人服务器 vul 免费asp空间 atom处理器 阿里云邮箱登陆地址 lamp的音标 免费个人网页 后门 杭州电信宽带 更多