DW CS5 with PHP book on Rough Cuts

If you would like to get early access to my next book “Adobe Dreamweaver CS5 with PHP: Training from the Source”, the first six chapters (of 12) are now available as Rough Cuts in Creative Edge and Safari Books Online.

If you have a Safari Library subscription, you can view the chapters free of charge, and see new ones as they’re added. Without a subscription, you can get access to the book in PDF format for $34.99, including the finished ebook version when the book is complete. You can also opt for the Rough Cuts PDF and Print bundle for $67.48. The print version is expected to be released in early August.

The chapters currently available are Lessons 1-3 and 4-7, covering the following subjects:

  • An in-depth look at all the PHP features in Dreamweaver CS5
  • Instructions for setting up a local PHP development environment
  • A quick PHP crash course (or refresher)
  • Creating your own database in MySQL
  • Using Dreamweaver server behaviors for automatic code generation
  • Building a robust user registration system with Zend_Validate and Zend_Db

Chapters still to come concentrate heavily on using selected modules of the Zend Framework for sending email, uploading files, and building a content management system. (To avoid any misunderstanding, the book does not use the MVC design pattern—it follows what the ZF documentation calls “use at will” design, making use of individual components.)

This entry was posted in Books, Dreamweaver, MySQL, PHP. Bookmark the permalink.

37 Responses to DW CS5 with PHP book on Rough Cuts

  1. Adam A. says:

    I’m really looking forward to your new book, David. I have to say, your thorough, hands-on approach is exactly the sort of reference material anyone looking to understand php scripting should keep on hand.

    Keep up the great work and best of luck to you from the windy city!

  2. Shamick Gaworski says:

    I could not find your email. I want to say BIG THANK YOU for this article you wrote http://foundationphp.com/tutorials/php_leopard.php … It really really helped me. I am not bad php developer (:-)) but I always felt stupid on Mac, even though I like Mac.

    This is very nice and simple instruction you wrote, but without it, novice like me is completely lost on Mac …

    Thank you Thank you Thank you!!!!

  3. Thank you David for the great books you write and for taking the time to answer comments on the Adobe sites. Big tweet please when the new book comes out! Tracey

  4. David Powers says:

    Thanks, Tracey. I’m working on the final chapter, which should be finished over the weekend. Then it’s just a question of going through the chapters to make sure everything’s OK before it can be shipped off to the printers. Not long now. 🙂

  5. Rob says:

    I’m looking for a book on Dreamweaver that will help me understand PHP/MySql stuff. I have followed some of you comments in Tutorials on the Adobe site. At this point I have my Server running locally. I have been able to upload to my Remote site the entire datablse folder that I have located in the htdocs folder. The serious difficulty I am having at this time is I believe getting the naming and permissions conventions right for my Hosting Company. Could you recommend 1 of your books to help me in this regard?

  6. Kisan says:

    I read your article on Setting up a local testing server in Dreamweaver CS5 on Adobe site.

    Article helped me in making PHP files work.

    I have a small query. Is it safe to keep local testing server connected to the internet or should I disconnect the internet while working on my local testing server?

  7. David Powers says:

    Running a local testing environment on your computer should not present any additional dangers, particularly if you have a firewall or security software. I also restrict all access to MySQL accounts to localhost only.

  8. Loho says:

    Hi David, Looking forward to your book. Great job on adobe tutorials as well.

    FYI – dead link on http://foundationphp.com/books.php . (Img link for phpsols.) By all means delete this post, but just thought i’d let you know. I noticed it a few weeks ago.

  9. David Powers says:

    @Loho, Thanks very much. Dead link fixed.

  10. ginny says:

    Hi David
    I just upgraded to Dreamweaver CS5 with the understanding I can set up a CMS within my sites.
    Do you have a preference of which Web CMS app to use (Joomla, WordPress, Drupal, ect.)?
    I want the site to be an informational site with a blog link in the navigation bar.
    Also can I take an existing site that I’ve created and place it in one of these Web CMS apps?

    I appreciate any comments. Your Essential guide to Dreamweaver CS3 was a great resource, looking forward to the next one. Thanks!

  11. David Powers says:

    My personal preference is to use WordPress. I find it the easiest of the three to use. Drupal is very powerful, but you need to add in several modules before you can use it effectively. I also found myself getting lost in a labyrinth of configuration settings. The joy of WordPress is that you can start using it within minutes. I haven’t explored Joomla deeply enough to do a realistic comparison, but it does seem to have a steeper learning curve than WordPress.

    Taking an existing site and converting it to a WordPress site is certainly doable, but it might be easier to keep the existing informational pages as they are, and just add WordPress as the blog element.

  12. zozizo says:

    Dreamweaver – for a starter like me, with no English courses around in Saudi Arabia, the only way is self study. So I bought Dreamweaver the Bible, the missing manual and your book – the essential guide to Dreamweaver.

    HUGE COMPLIMENTS for your book.

    Am at page 211 now (still I lot to go ; ) and finally I have the idea I will get there. Basically I am just only using your book now, hardly picking up the other two any more. Now I found out theres also tutorials on the site, hm, hopefully my slow internet will be cooperative with that : )

    The step by step dummy proof explanation helps a lot!!!! And the sense of humor is very welcome in moments of despair – yep, its a lot to grasp. Not able to post my website yet with the post, but wanted already to pass on the compliments to you. Thanks for the help!!!

  13. MM says:

    Hi David
    I have bought your book Adobe Dreamweaver CS5 with PHP: Training from the Source from Amazon. It didn’t has any CD. Was there a CD published with book as it is advertised on its back cover? If not, how can I get the associated files?

    It is an excellent book and I enjoy reading it. Thank you David for your efforts.

  14. David Powers says:

    Glad you like the book. It does have a CD. It’s in a cardboard sleeve just inside the back cover (opposite the Creative Edge advert). If the CD was missing, you’ll need to contact Amazon.

    There are download files for the electronic version in Safari Books Online and Creative Edge, but you need to be a subscriber to access them. I believe there’s also a download site for the Kindle version. The location is given right at the start of the Kindle version. However, I don’t have a copy of the Kindle version, so I don’t know where the site is or how you access it.

    Hope you get it sorted quickly.

  15. Scott says:

    Enjoyed your three-part series on “Building your first dynamic website” on Adobe.com, which is where I learned about your book “Adobe Dreamweaver CS5 with PHP: Training from the Source.”

    The book just arrived today, and I’m wondering if you have any advice regarding whether it would be better to restyle a WordPress site over building one’s own database.

    I’d like to take on the challenge of building my own database, but then it occurred to me that it might be better to use WordPress, if only for its security. Any thoughts? Thanks.

  16. David Powers says:

    It depends on your needs. Setting up a WordPress site is very simple. Although it takes time to style it to look the way you want, you can have a database-driven site online in an hour or so. The advantage of rolling your own is that you can configure the database and site to match your own requirements, rather than trying to shoehorn everything into the WordPress setup. On the other hand, it takes a long time to learn how to build your own.

    My advice would be to start with WordPress, but also to continue experimenting with developing your own setup. Even if you decide to stay with WordPress, the knowledge you gain will be valuable in administering and customizing WordPress. Hope you enjoy my book.

  17. Jeffrey Johnson says:

    I’m a student at Fort Hays State University in Kansas. We are using your book, Adobe Dreamweaver CS5 with PHP, for our advanced web development class. I’m currently in lesson 8 on page 276. This is where you test the email form. When I test the form I receive the following error message at the top of the page: “Missing challenge field”
    Do you have any idea of what the problem might be? I have attempted to use the completed files from lesson08 but they don’t work either.
    Any help would be good

  18. David Powers says:

    There’s an error on page 247 that might explain the problem. See http://foundationphp.com/phpcs5/errata.php.

  19. Jeffrey Johnson says:

    I looked at the error on page 247 and believe that I previously fixed the error. Since this is sending email with out connecting to the database how would the error on page 247 be caused this problem? The error that I keep getting is in the Zending Mail section using captcha. I started from the beginning of lesson 8, again tonight, and had the exact same error when I attempted to send the email on page 276 step 10.
    I enter information into the fields and then enter the captcha word and click the “Send Comments” button. After clicking the “Send Comments” button all of the information that I had entered is now gone and I see a message in the upper left hand corner “Missing challenge field.” To me it appears that something is not connecting in the captcha code.
    Do you have any ideas on how to fix this problem?

  20. David Powers says:

    Yes, that’s obviously something to do with the captcha. I’m just about to leave for the airport to fly to LA, so I won’t be able to look at this for some time. Sorry.

  21. Jeff Johnson says:

    Do you have a time frame in which you might be able to take a look at the error?

  22. David Powers says:

    Sorry, but I cannot undertake to troubleshoot every problem that readers might encounter, particularly when travelling (I’m out of the UK until early November). What I have managed to establish is that the message you’re seeing is caused by the Zend_Service_ReCaptcha component throwing an exception. It indicates that the contents of the challenge field are not being received by the verify() method. There are several possible causes: you have mixed up the GET and POST methods, there’s a misspelling in the first argument passed to the verify() method, or there’s something in your setup that’s preventing the ReCaptcha values from being displayed/transmitted. Whatever the cause, I’m fairly confident that it’s not an error in the book or in the code on the CD. The files on the CD were thoroughly tested before the disk was created.

    I suggest that you conduct some troubleshooting steps of your own, such as looking at the source code generated by the form with the ReCaptcha widget in it, and examining the contents of the $_POST array with print_r(). Let me know if you manage to locate the cause of the problem. I’m curious as to why the challenge value should not be sent when the form is submitted.

  23. Jeffrey Johnson says:

    Thank you for responding, I can understand the trouble with being away from home and attempting to fix problems. Just an update the rest of my class is now having the same problem. If we happen to find the trouble I will let you know the fix.

  24. Judith says:

    I think there’s an error on page 235, no. 5:
    $errors[‘username’] should be $errors[‘password’].

    Apart from that, great book!

  25. David Powers says:

    Yes, Judith, you’re right. Thanks. I’ll add it to the errata for the book.

  26. Lionel says:

    Hello David,

    One time again, here it is a great book!!

    I’ve tested local virtual hosts as you explain in the book, it works great but there is an issue with WordPress as the permalink don’t work… even with mod_rewrite activated in PHP

    did you noticed that?


    PS: just started to read your new PHP solutions book 😉

  27. David Powers says:

    Hi Lionel, Glad you like my books. I have just tested WordPress permalinks in my Dreamweaver CS5 setup. They work just fine. My WordPress installation is in a virtual host in a subfolder called blog. The .htaccess file looks like this:

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /blog/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /blog/index.php [L]

    # END WordPress

  28. Lionel says:

    Hi david, you’re very kind with your answer, thank you again

    here is my htaccess

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

    unfortunatly it don’t still works, I don’t understand why.
    It works perfectly without the permalinks.

    my blog is in a S:\vhosts\gargouille folder and I reach it with http://gargouille

  29. Lionel says:

    ouppss sorry, in fact here is the real .htaccess, there is a if test in it

    # BEGIN WordPress

    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

  30. Lionel says:

    I must comment the IfModule line to be postable here ……

    # BEGIN WordPress
    # don’t take care of the #
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    # don’t take care of the #

    # END WordPress

  31. Lionel says:

    excuse me david, there is two lines that I can’t post here ;-(

    replace ? sign with left and right bracket……

    # BEGIN WordPress
    ?IfModule mod_rewrite.c?
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]

    # END WordPress

  32. Lionel says:

    sorry for the mess, david….

    the last post is the good one

  33. Lionel says:

    Hi David, after searching the web, I found the solution !!!!!!!!!!!!

    I’ve added the line

    AllowOverride All

    in step 7 page 43 of the book in the file httpd-vhosts.conf and that cure the problem.
    Does it mandatory?
    then , in works, I have the permalinks in local virtual hosts.



  34. Payam says:

    Hi David

    I have been reading your book Adobe DreamWeaver CS5 with PHP and I have encountered a problem. On page 245, you bring up the quoteInto() method for the Zend_Db class. You mention that it takes two arguments, however it seems that there is a problem with this. I followed the code in the book and this is the error that I get:

    Warning: Missing argument 2 for Zend_Db_Adapter_Abstract::quoteInto(), called in /Applications/MAMP/htdocs/myform/user_registration.php on line 16 and defined in /Users/payam/php_library/ZendFramework-1.11.8/library/Zend/Db/Adapter/Abstract.php on line 927

    I did some search on the web and it seems that Zend_Db and quoteInto() accepts only one arguments, and some modification is needed to make it to accept multiple arguments.
    Would you please explain?


  35. David Powers says:

    The error message says that argument 2 is missing. As it says on page 245, the quoteInto() method takes two arguments: a SQL statement with a question mark placeholder, and the value you want to use in place of the question mark. What the error message means is that the value you want to use is missing. In the case of Lesson 7, the value is $_POST['username']. You’re almost certainly getting the error message because $_POST['username'] is either not set or has no value.

    I did a quick Google search to see where your misunderstanding about multiple arguments came from. The point being made about quoteInto() is that it can’t be used for multiple parameters in a query. For example, you can’t use it to replace values for both username and password, because that would require two question mark placeholders. The quoteInto() method replaces the value of only one question mark, but it requires two arguments: the query and the value you want to insert into it.

  36. Hi David
    I have worked through “PHP Solutions” and “Training from the Source” but would like to know more about MVC because I need to make some changes to opencart. I like your approach and would value any recommendations about which books I should start with.
    Many thanks

  37. David Powers says:

    Hi Peter, I have to admit that I’m not an expert on MVC. I’ve read about in Head First Design Patterns and in books about the Zend Framework. The ZF books were all based on ZF1, and I wasn’t very impressed with them anyway. Sorry I can’t be of more help.