Hotel Booking
Hotel Booking

Monday, September 29, 2008

Dreamweaver CS3 with CSS, Ajax, and PHP {Part-3}

Document-relative links

The most common way to indicate the path to a resource on the same site is with links that

are relative to the document. For example, if index.php, contains a link to journey1.php,

the code looks like this:

Read more

And a link back to index.php inside journey1.php looks like this:

Back to main page

Similarly, if index.php contains the image called fountains.jpg, the tag looks like

this (I have omitted all attributes other than src, because that’s the only one we’re interested



in at the moment):



A reference to the same image in journey1.php, however, looks like this:



The ../ before index.php and the images folder name tells the web server that it needs

to look one level higher in the website hierarchy to find the correct folder. If you change

the structure of the website using the Files panel, Dreamweaver automatically updates all

links, adding or removing the requisite number of ../ to ensure that everything works as

intended.

Root-relative links

An alternative way of indicating the path to a resource on the same site is to make the

links relative to the site root, rather than the document. With root-relative links, the two

links look like this:

Back to main page

The tag in both index.php and journey1.php looks like this:



Figure 4-1.

A simple website structure displayed in

the Dreamweaver Files panel

SETTING UP A PHP SITE

105

4

The difference is that the pathname always begins with a leading forward slash, which indicates

the top level of the site—in other words, the site root.

Why does this matter? After all, both achieve the same thing. When building static sites

with .html pages, it doesn’t make any difference which you choose. However, root-relative

links can be extremely useful with PHP. The advantage is that the link to the image is identical

in index.php and journey1.php, even though the pages are at different levels of the

site hierarchy. This means that you can put some of your code, such as a navigation menu,

in an external file and the links will always work. As you’ll see in Chapter 12, the menu can

be included in multiple pages using a simple PHP command, and changes to the external

file are automatically propagated to all of them—a great time saver.

Because root-relative links are so useful, you may think that they’re the best choice for a

PHP site. Unfortunately, life is not quite so simple. Although root-relative links are essential

inside external files, PHP expects the include command to use a document-relative

link. Moreover, Dreamweaver uses code that fails on IIS if you select root-relative links as

the default for your site. I’ll show you how to get around these problems at the appropriate

points later in the book.

First, let’s look at the alternative ways of organizing your files.

Keeping everything together in the server root

The server root is a directory or folder where the web server expects to find all public files.

The simplest way of organizing a test environment is to create a subfolder for each site

inside the server root. You can then test the site in a browser by adding the subfolder’s

name after http://localhost/. So, a site in a subfolder called egdwcs3 is accessed by the

address http://localhost/egdwcs3/.

Putting everything in the server root has the advantage that the web server automatically

recognizes any new subfolders inside the server root, eliminating the need for any further

setup.

There are, however, two significant disadvantages:

All files need to be in the same parent folder, so if your web files are in different

parts of your system, you need to move them before working with PHP.

Because each site is in a subfolder of the server root, you cannot test pages locally

if they use root-relative links.

One way round this is to create your site in the server root, but this restricts you to only

one site. A better solution—although only if you’re using Apache as your local testing

server—is to use virtual hosts.

Working with virtual hosts

Without getting into technical details, the web server treats a site in a virtual host as

though it’s in a dedicated server root of its own, even though everything is outside the

main server root. You can emulate this setup on your development computer so that

instead of http://localhost/egdwcs3/, the address becomes simply http://egdwcs3/.

This has two main advantages:

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

106

It doesn’t matter whether your web files are scattered in different parts of your system—

as long as each individual site is inside a single parent folder.

Because a virtual host is treated as a dedicated server root, there is no problem

with testing links relative to the site root.

There are no prizes for spotting that the advantages of virtual hosts overcome the disadvantages

of keeping everything in the server root. So why don’t I just tell you to create

virtual hosts? Three reasons:

Virtual hosts are slightly more complicated to set up. Each new one needs to be

added to the web server’s main configuration.

To support virtual hosts with IIS, you must be running a server version of Windows.

The version of IIS that runs on Windows XP or Vista supports only virtual directories,

which are not the same as virtual hosts.

Even if you never put anything in the server root, you still need one.

Don’t worry if you’re not sure which to choose. Using the server root is simpler, faster, and

adequate for most local development.

Finding the server root

On Windows, Apache 2.2 creates the server root at the following location:

C:\Program Files\Apache Software Foundation\Apache2.2\htdocs

I don’t think it’s a good idea to store your web files in among all your program files, so I

suggest that you move the Apache server root on Windows to a different location, as

described in the next section.

The IIS server root is located at

C:\Inetpub\wwwroot

On Mac OS X, you have two choices of server root. The main one is located at

Macintosh HD:Library:WebServer:Documents

Every user account on a Mac also has its own dedicated server root at

Macintosh HD:Users:username:Sites

Any site within this folder can be viewed in a browser using the address http://

localhost/~username/ followed by the name of the site’s subfolder, where username is

the name of your home folder. The address for the main server root is simply http://

localhost/, so it is probably the most convenient to use unless you share the computer

with others and want to keep things separate.

Moving the Apache server root on Windows

To avoid clogging up C:\Program Files with unrelated files, it’s a good idea to move the

Apache server root on Windows. All it involves is creating a new folder and a couple of

simple edits to the main Apache configuration file, httpd.conf. I normally create a folder

SETTING UP A PHP SITE

107

4

called htdocs at the top level of my C drive, but if you have another hard disk, it’s a good

idea to use a drive other than C, as—among other things—it makes it easier to recover

your files in case of a hard drive failure. The name of the folder is unimportant. I use

htdocs because that’s the traditional name for an Apache server root.

After you have created the new folder, open C:\Program Files\Apache Software

Foundation\Apache2.2\conf\httpd.conf in Notepad or a text editor and locate the following

section:

Change the pathname shown on line 149 of the preceding screenshot to the same as your

new folder (use the line numbers simply as a guide. They are not part of the file and may

be different in a later version of Apache). In my case, I change it to this:

DocumentRoot "C:/htdocs"

Scroll down about 30 lines until you find this section:

The instruction shown on line 175 is pretty straightforward: change the pathname to

match the previous change. In my case, I end up with this:



That’s all you need to do. While you have httpd.conf open, though, it’s a good idea to add

a default PHP page to your Apache configuration.

Setting a default file for Apache on Windows

With httpd.conf still open, scroll down to the following section:

Make sure that you use forward slashes in the pathname, instead of using

the Windows convention of backward slashes.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

108

This setting tells web servers what to display by default if a URL doesn’t end with a file name

but contains only a folder name or the domain name (for instance, www.friendsofed.

com). Apache will choose the first available page from a space-separated list. Add a space

followed by index.php at the end of the command shown on line 212 of the preceding

screenshot like this:

DirectoryIndex index.html index.php

If you want to create one or more virtual hosts, leave httpd.conf open, and skip to

“Creating virtual hosts on Apache.” Otherwise, save httpd.conf, and restart Apache for

the changes to take effect.

Adding a default PHP file to IIS

Since you’ll be working with PHP, it’s useful to add index.php to the list of default documents

that IIS serves up whenever you enter a URL in the browser address bar that doesn’t

include a file name (such as www.friendsofed.com). The following instructions explain

how to do it.

1. Open the Internet Information Services panel (Start ä Control Panel ä Administrative

Tools ä Internet Information Services), and expand the tree menu in the left pane.

Select Default Web Site.

2. In Windows XP, right-click, and choose Properties from the context menu. Then

select the Documents tab of the Default Web Site Properties dialog box, and click

Add. In the dialog box that opens, type index.php in the Default Document Name

field, and click OK. Use the up and down arrows to move index.php to the position

you want in the list, as shown in the following screenshot. If there are any default

documents listed that you never intend to use, highlight them, and click Remove.

Make sure that Enable Default Document is checked, and click OK.

SETTING UP A PHP SITE

109

4

In Windows Vista, double-click Default Document in the IIS section of Default Web

Site Home, as shown in the following screenshot:

Add index.php to the comma-separated list in the File name(s) field. Remove any

document types that you have no intention of using, and click Apply in the Actions

panel at the top right of the Internet Information Services (IIS) Manager.

3. Before your changes can take effect, you need to restart the web server. In

Windows XP, with Default Web Server still highlighted in the Internet Information

Services panel, click the Stop Item button (a black square) in the toolbar. After the

web server stops, click the Start Item button (a right-facing arrow). In Windows

Vista, return to the Default Web Site Home screen, and click Restart under Manage

Web Site in the Actions panel (at the top right of the preceding screenshot).

Creating virtual hosts on Apache

This section is entirely optional. If you don’t want to set up virtual hosts, skip ahead to the

section “Defining a PHP site in Dreamweaver.” You can come back and set up virtual hosts

at any time.

Apache allows you to create as many virtual hosts as you want. It’s a two-stage process.

First, you tell the operating system the names of the virtual hosts, and then you tell

Apache where the files will be located. There are separate instructions for Windows and

Mac OS X.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

110

Registering virtual hosts on Windows

Although you can locate your virtual hosts anywhere on your hard drive system, it’s a good

idea to keep them in a single top-level folder, as this makes it easier to set the correct permissions

in Apache. The following instructions assume that all your virtual hosts are kept

in a folder called C:\vhosts and show you how to create a virtual host called egdwcs3

within that folder.

1. Create a folder called C:\vhosts and a subfolder inside it called egdwcs3.

2. Open C:\WINDOWS\system32\drivers\etc\hosts in Notepad or a script editor. It’s

normally a very short file. Look for the following line at the bottom:

127.0.0.1 localhost

127.0.0.1 is the IP address that every computer uses to refer to itself.

3. On a separate line, enter 127.0.0.1, followed by some space and the name of the

virtual host. For instance, to set up a virtual host for this book, enter the following:

127.0.0.1 egdwcs3

4. If you want to register any further virtual hosts, add each one on a separate line,

and point to the same IP address. Save the hosts file, and close it.

The remaining steps involve editing two Apache configuration files. On Windows XP, you

don’t need to take any special steps. Just edit them in Notepad or a text editor.

If you are using Vista and User Access Control (UAC) is still turned off from the previous

chapter, you can edit these files in the normal way. If you want to add additional virtual

hosts after turning UAC back on, run Notepad as administrator as described in step 2.

5. Open C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.

conf in a text editor, scroll down to the Supplemental configuration section at the

end, and locate the following section:

6. Apache uses the hash or pound sign (#) to indicate comments in its configuration

files. Uncomment the command shown on line 463 in the preceding screenshot by

removing the #, like this:

Include conf/extra/httpd-vhosts.conf

This tells Apache to include the virtual host configuration file, which you must now

edit. Save httpd.conf, and close it.

In Vista, you need to open Notepad using the Run as administrator option.

Otherwise, you won’t be able to save the file. From the Windows Start menu,

right-click Notepad (it’s in the Accessories folder), and select Run as administrator

from the context menu. Click Continue when prompted. In Notepad,

choose File ä Open, and set the drop-down menu alongside File name to All Files

(*.*). Navigate to the hosts file and click Open.

SETTING UP A PHP SITE

111

4

7. Open C:\Program Files\Apache Software Foundation\Apache2.2\conf\extra\

httpd-vhosts.conf in Notepad or a text editor. The main part of the file looks like

this:

8. Position your cursor in the blank space shown on line 15 in the preceding screenshot,

and insert the following four lines of code:



Order Deny,Allow

Allow from all



This sets the correct permissions for the folder that contains the sites you want to

treat as virtual hosts. If you chose a location other than C:\vhosts as the top-level

folder, replace the pathname in the first line. Remember to use forward slashes in

place of backward slashes. Also surround the pathname in quotes if it contains any

spaces.

9. Lines 27–42 in the preceding screenshot are examples of virtual host definitions.

They show all the commands that can be used, but only DocumentRoot and

ServerName are required. When you enable virtual hosting, Apache disables the

main server root, so the first definition needs to reproduce the original server root.

You then add each new virtual host within a pair of tags, using the

location of the site’s web files as the value for DocumentRoot and the name of the

virtual host for ServerName. If the path contains any spaces, enclose the whole path

in quotes. If your server root is located, like mine, at C:\htdocs, and you are

adding egdwcs3 as a virtual host in C:\vhosts, change the code shown on lines

27–42 so they look like this:



DocumentRoot c:/htdocs

ServerName localhost



DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

112



DocumentRoot c:/vhosts/egdwcs3

ServerName egdwcs3



10. Save httpd-vhosts.conf, and restart Apache. All sites in the server root will continue

to be accessible through http://localhost/sitename/. Anything in a virtual

host will be accessible through a direct address, such as http://egdwcs3/.

Registering virtual hosts on Mac OS X

This is a two-stage process. First, you register the names of any new hosts in NetInfo Manager,

and then you add the details of where to find them to the Apache configuration file.

1. Create a new folder on your hard disk to house your virtual hosts. I created a folder

called vhosts in my home folder.

2. Open NetInfo Manager, which is in the Utilities subfolder of Applications.

3. Click the lock at the bottom left of the dialog box that opens, and enter your

administrator’s password when prompted.

4. Select machines, then localhost, and click the Duplicate icon. When prompted, confirm

that you want to make a copy.

5. Highlight the copy, and double-click the name in the lower pane, as shown in the

following screenshot.

SETTING UP A PHP SITE

113

4

6. Change localhost copy to whatever you want to call the virtual host. For example, to

create a virtual host for this book, enter egdwcs3.

7. Click any of the other entries in the left column of the top pane. The operating system

will ask you twice if you really want to make the changes. You do. This registers

the name of the virtual host with your computer. The next stage is to tell Apache

where to find the web files.

8. Repeat steps 4–7 for any other virtual hosts you want to create. When you have finished,

click the lock icon in the bottom-left corner of the NetInfo Manager, and

close it.

9. Open BBEdit or TextWrangler, and select File ä Open Hidden. In the Open dialog

box, select All Files from the Enable drop-down menu, and open Macintosh

HD:etc:httpd:httpd.conf.

10. Scroll almost to the bottom of httpd.conf, and locate the following section:

11. Click the pencil icon at the top left of the editor window, and confirm that you

want to unlock the document, entering your administrator password when

prompted. Uncomment the command shown on line 1076 in the screenshot by

removing the hash sign (#). This enables virtual hosting but disables the main server

root, so the first virtual host needs to reproduce the Mac’s server root. The example

(on lines 1084–90) is there to show you how to define a virtual host. The only

required commands are DocumentRoot and ServerName. After uncommenting the

NameVirtualHost command, your first definition should look like this:

NameVirtualHost *:80



DocumentRoot /Library/WebServer/Documents

ServerName localhost



12. Add any further definitions for virtual hosts. To create one for this book, I used this:



DocumentRoot /Users/davidpowers/vhosts/egdwcs3

ServerName egdwcs3



DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

114

13. Save httpd.conf, and restart Apache. All sites in Macintosh HD:Library:

WebServer:Documents can still be accessed using http://localhost/ and those in

your Sites folder using http://localhost/~username/sitename/, but named virtual

hosts can be accessed directly, such as http://egdwcs3/. Of course, a site must

exist in the location you defined before you can actually use a virtual host.

Registering virtual directories on IIS

The version of IIS that runs in Windows workstations (the vast majority of personal computers)

does not support virtual hosts. Instead, it allows you to set up virtual directories.

However, localhost always remains the basic address of the web server, so you cannot use

root-relative links with virtual directories. The main advantage of using virtual directories

is that they avoid the need to locate all web files in the default IIS server root at

C:\Inetput\wwwroot. This means you can leave your sites wherever they are on your hard

disk but still get IIS to parse your PHP scripts when viewed through a browser. A virtual

directory can be anywhere, but don’t use spaces or special characters in the virtual directory

name. Also, putting virtual directories on your desktop is likely to lead to permission

problems.

To set up a virtual directory in IIS, open the Internet Information Services panel (Start ä

Control Panel ä Administrative Tools ä Internet Information Services), highlight Default Web

Server, right-click, and select New ä Virtual Directory (XP) or Add Virtual Directory (Vista). On

XP, a wizard will appear and walk you through the process. In Vista, type the name of the

virtual directory in the Alias field, and click the button alongside the Physical path field to

browse to the folder where the files are kept. If you create a virtual directory called

egdwcs3, the URL becomes http://localhost/egdwcs3/.

Defining a PHP site in Dreamweaver

Site definition is fundamental to working successfully with Dreamweaver. It allows you to

create an exact copy of your website on your development computer, update existing files

and create new ones locally, test them, and then upload them to the remote server on the

Internet. For the benefit of Dreamweaver newcomers, I will go through the whole process

step by step. Old hands should take particular notice of the sections titled “Defining the

testing server” and “Setting up for Spry.”

By this stage, you should have decided where you are going to store your local files. The

setup process is basically the same whether you test your PHP files locally or on your

remote server.

Opening the Site Definition dialog box

There are several ways to open the Site Definition dialog box. If the Dreamweaver Welcome

screen is open, you can choose Dreamweaver Site from the bottom of the Create New column.

It’s probably more convenient, though, to choose New Site from the Site menu,

because the menu is always available, even if you have web pages open in the Document

SETTING UP A PHP SITE

115

4

window. Another convenient way is to select Manage Sites from the bottom of the site list

at the top left of the Files panel.

Dreamweaver has been designed with both beginners and more advanced users in mind,

so you may see either the basic dialog box shown on the left of Figure 4-2 or the advanced

one on the right.

Figure 4-2. The Site Definition dialog box has two interfaces: Basic (left) and Advanced (right).

If you see the screen on the left of Figure 4-2, click the Advanced tab at the top left (it’s in

the center of the Mac version). Dreamweaver is good at remembering your previous

choices, so, if you use the Site menu to open the Site Definition dialog box, it will automatically

display the advanced version after the first time. Opening it from the Dreamweaver

Welcome screen always displays the basic version.

If you select Site ä Manage Sites by mistake, you will be presented with the dialog box

shown in Figure 4-3. This presents you with a list of sites that you have already defined in

Dreamweaver. The buttons on the right let you perform a variety of management functions

that are described in “Managing Dreamweaver sites” later in the chapter. To create a

new site, click the New button at the top right, and select Site from the mini menu that

appears.

Figure 4-3.

The Manage Sites dialog box lets you

create a new site or edit an existing one.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

116

Telling Dreamweaver where to find local files

The first stage of site definition involves defining the basic details of the site. Open the Site

Definition dialog box, and make sure the Advanced tab is selected. If necessary, select Local

Info from the Category column on the left. You should see the same screen as shown on

the right of Figure 4-2.

Let’s take a look at what each option means, with particular reference to defining a PHP

site for use with this book. If you plan to use a virtual host in your local development environment,

I assume that you have set up a virtual host called egdwcs3 in C:\vhosts\

egdwcs3 on Windows or in a folder called vhosts inside your home folder on a Mac.

Site name This identifies the site within Dreamweaver. The name appears in the dropdown

menu at the top of the Files panel (Figure 4-1) and in the Manage Sites dialog box

(Figure 4-3), so it needs to be reasonably short. It’s used only within Dreamweaver, so

spaces are OK. I used Essential Guide.

Local root folder This is the top-level folder of the site. Everything should be stored in this

folder in exactly the same hierarchy as you want to appear on the live website. When testing

a PHP site locally, this folder should either be inside your server root, a virtual host, or

a virtual directory (IIS only). Click the folder icon to the right of the Local root folder field

and navigate to the appropriate location on your hard disk. If the folder doesn’t exist, navigate

to your server root or virtual host’s top-level folder, and click Create New Folder in

the Choose local root folder dialog box. Depending on your setup, your local root folder for

this book should be one of the following:

Server root on Windows: C:\htdocs\egdwcs3\

Virtual host on Windows: C:\vhosts\egdwcs3\

Main server root on Mac OS X: Macintosh HD:Library:WebServer:Documents:

egdwcs3:

Server root inside your home folder on Mac OS X: Macintosh HD:Users:username:

Sites:egdwcs3:

Virtual host on Mac OS X: Macintosh HD:Users:username:vhosts:egdwcs3:

If you plan to use a remote server or an IIS virtual directory to test your files, the local root

folder can be anywhere on your local computer.

Default images folder This field is optional but is very useful if you plan to use images that

are on other parts of your file system or even in other Dreamweaver sites. Whenever you

insert an image in a web page, Dreamweaver automatically copies it to this folder and creates

the correct link in the tag’s src attribute. To set this option, click the folder icon

to the right of the Default images folder field, navigate to the local root folder that you

selected for the previous option, and select the images folder. If the folder doesn’t exist,

click the Create New Folder button to create it.

With large sites, it’s sometimes convenient to create a site definition in Dreamweaver

for just part of the site. If the local root folder is already in another defined site,

Dreamweaver warns you that some functions, such as site synchronization, won’t

work. However, it won’t prevent you from creating the subsite.

SETTING UP A PHP SITE

117

4

Links relative to This option lets you select the default style of links used in the site (see

“Understanding document- and root-relative links” earlier in the chapter). Unless your

testing server and remote server both run on Apache, I strongly advise you to accept the

default Document. When you select root-relative links as the site default, Dreamweaver

attempts to connect to your database using code that works only on Apache. Although

you can amend the code manually, it’s easier to use document-relative links throughout

the site, and switch to root-relative ones only when necessary.

HTTP address This field should contain the URL of the final site on the Internet. If you are

using the site only for local testing, you can leave this field empty. If you have selected

root-relative links, Dreamweaver will display the following warning:

You can safely ignore this warning for local testing, and click OK. However, it is important

to get the URL correct for remote testing or a site that you plan to deploy on the Internet.

Case-sensitive links I recommend that you select this option since the vast majority of PHP

websites are hosted on Linux servers, which treat products.php and Products.php as

completely different file names. Even if your remote server runs on Windows, selecting

this option maintains internal integrity of your file structure.

Cache As the Site Definition dialog box explains, this speeds up various aspects of site management

in Dreamweaver. Very large sites (with several hundred pages) tend to slow down

dramatically if the site cache is enabled. However, with a PHP site, you should draw content

from a database into a dynamically generated page, rather than create a new page

every time. I suggest that you leave this option selected, and disable it only if you run into

performance problems.

After you have completed the Local Info category, select Remote Info from the Category list

on the left of the Site Definition dialog box.

If in doubt, select Document. You can always change this option later or override the

site default for individual links. If you change the site default later, it affects only links

created afterward. Dreamweaver gives you the freedom to mix different types of links

in the same site and will not override existing code. The implications of this choice

with relation to PHP includes and connection to MySQL are discussed in Chapters 12

and 14, respectively.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

118

Telling Dreamweaver how to access your remote server

When you first open the Remote Info category, you’re presented with a single drop-down

menu labeled Access. It has six options, as shown in the following screenshot (the final

option—Microsoft Visual SourceSafe—is not available in the Mac version).

First, let’s take a look at the Access options:

None: Choose this if you don’t plan to deploy the site on the Internet, or if you

don’t want to set up your remote server immediately. If you choose this option,

you can skip ahead to the “Defining the testing server” section.

FTP: This is the most common choice. It sets up Dreamweaver’s built-in FTP (File

Transfer Protocol) program to communicate with your remote server.

Local/Network: This allows you to deploy your live website to another folder on

your local computer or network. This is normally done only by organizations that

run their own live web servers.

WebDAV: This uses the WebDAV (Web-based Distributed Authoring and Versioning)

protocol to communicate with the remote server. It requires a remote server that

supports the WebDAV protocol.

RDS: This uses Remote Development Services, which is supported only by ColdFusion

servers. You cannot use it with a PHP site.

Microsoft Visual SourceSafe: This requires access to a Microsoft Visual SourceSafe

database and is not appropriate for the Dreamweaver PHP MySQL server model.

Since FTP is the most common method of connecting to a remote server, that’s the only

one I’ll describe. Click the Help button at the bottom of the Remote Info category of the

Site Definition dialog box for detailed descriptions of the options for the other methods.

When you select the FTP option from the Access drop-down menu, the Remote Info category

of the Site Definition dialog box presents you with the options shown in Figure 4-4.

Most of them are very straightforward, but I’ll describe each one briefly.

SETTING UP A PHP SITE

119

4

Figure 4-4. The FTP options for the Remote Info category of the Site Definition

dialog box

FTP host Enter your remote server’s FTP address in this field. You should normally get this

from your hosting company. It usually takes either of the following forms: ftp.example.

com or www.example.com.

Host directory This is the pathname of the top level of your website. The important thing

to realize is that the directory (folder) that you enter in this field should contain only those

files that will be accessible to the public through your site’s URL. Often it will be named

htdocs, public_html, or www. If in doubt, ask your hosting company or server administrator.

Login This is the username given to you by your hosting company or server administrator.

Password Enter your remote server password in this field. Dreamweaver displays your

password as a series of dots. It also automatically saves your password, so deselect the

Save checkbox if you want to be prompted for the password each time you connect to the

remote server. Click the Test button to make sure that Dreamweaver can connect successfully.

If the test fails, make sure Caps Lock isn’t turned on, as passwords are normally case

sensitive. Other reasons for failure include being behind a firewall, so check the remaining

options before trying again.

Use passive FTP Try this option if a software firewall prevents you from connecting to the

remote server. For more details, see www.adobe.com/go/15220.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

120

Use IPv6 transfer mode This option is designed to prepare Dreamweaver for the future.

Select this option only if you have been told that your remote FTP server uses Internet

Protocol version 6 (IPv6).

Use firewall Select this option if you are behind a firewall. Then click the Firewall Settings

button to open the Site Preferences dialog box. Enter the firewall host and firewall port (if

it’s different from 21) in the appropriate fields, and click OK to return to the Site Definition

dialog box.

Use Secure FTP (SFTP) Select this option if your remote server supports Secure FTP, which

gives you a more secure connection but is not supported by all servers. Selecting this

option automatically disables these other options: Use passive FTP, Use IPv6 transfer mode,

Use firewall, Firewall Settings, and Server Compatibility.

Server Compatibility Click this button if you are still having problems connecting through

FTP. The two options in the dialog box that opens are self-explanatory.

Maintain synchronization information This is selected by default and enables you to synchronize

your remote and local files through the Files panel.

Automatically upload files to server on save This is self-explanatory. I don’t recommend its

use, because you should always test files locally before uploading them to your remote

server. Otherwise, all your mistakes will go public. It overwrites your original files, so you

can no longer use them as backup.

Enable file check in and check out Select this option only if you are working in a team and

want to use Dreamweaver’s Check In/Check Out system. For more information, launch

Dreamweaver Help (F1) and select Check In/Check Out from the Index, or go to

www.adobe.com/go/15447. All team members must have this option enabled for it to work.

Failure to do so results in chaos.

After you have completed the Remote Info category, select Testing Server from the Category

list on the left of the Site Definition dialog box.

Defining the testing server

This is probably the most important dialog box when building dynamic sites in Dreamweaver.

It’s quite easy to fill in, but if you get the details wrong, Dreamweaver cannot communicate

with any of your databases. When you first open the Testing Server category, it looks

similar to the Remote Info category in its initial state, but with two drop-down menus

instead of one, as shown in the following screenshot.

SETTING UP A PHP SITE

121

4

Activate the Server model drop-down menu, and select PHP MySQL. What you choose for

Access depends on whether you want to test your PHP pages locally or by using your

remote server. The options are different, so I’ll cover them separately—first, local testing.

Selecting options for local testing

The Access drop-down menu determines how you communicate with the testing server. If

you have a local test environment on your computer or another computer on a LAN,

choose Local/Network. This reveals two options that Dreamweaver attempts to fill in automatically.

Figure 4-5 shows what happened when I had defined the local root folder in the

Local Info category as a virtual host on Windows.

Figure 4-5. Dreamweaver attempts to fill in the Testing Server details automatically.

Dreamweaver usually gets the value for Testing server folder correct but invariably gets URL

prefix wrong. Getting both right is crucial, so let’s take a look at what they represent.

Testing server folder This should normally be the same folder that you selected as the

Local root folder in the Local Info category. The only exception is if you want to use a testing

server elsewhere on your local network. In this case, click the folder icon to the right

of the field to browse to the correct location.

URL prefix This needs to reflect the structure that you have chosen for your testing environment.

If your testing server folder is in the server root or a virtual directory, it will be

http://localhost/sitename/. If you are using a virtual host, it will simply be http://

sitename/. If the testing server is on another computer on a local network, substitute

localhost with the correct IP address.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

122

It’s critical that URL prefix is set correctly, as it controls all dynamic aspects of

Dreamweaver. Because so many people seem to get this wrong, here are the values for

Testing server folder and URL prefix for the various scenarios described earlier:

If the site is in a subfolder of the server root of the same machine on Windows:

Testing server folder: C:\htdocs\egdwcs3\

URL prefix: http://localhost/egdwcs3/

If the site is in a virtual host called egdwcs3 on Windows:

Testing server folder: C:\vhosts\egdwcs3\

URL prefix: http://egdwcs3/

If the site is in a subfolder of the main server root of the same machine on a Mac:

Testing server folder: Macintosh HD:Library:WebServer:Documents:egdwcs3:

URL prefix: http://localhost/egdwcs3/

If the site is in a subfolder of your Sites folder of the same machine on a Mac:

Testing server folder: Macintosh HD:Users:username:Sites:egdwcs3:

URL prefix: http://localhost/~username/egdwcs3/

If the site is in a virtual host called egdwcs3 on a Mac:

Testing server folder: Macintosh HD:Users:username:vhosts:egdwcs3:

URL prefix: http://egdwcs3/

If the site is in an IIS virtual directory:

Testing server folder: Can be anywhere

URL prefix: http://localhost/egdwcs3/

In simple terms, Testing server folder and URL prefix must both point to the site’s root

folder. Testing server folder is the physical address, while URL prefix is the address you enter

in a browser.

Selecting options for remote testing

The Access drop-down menu in the Testing Server category offers fewer options than the

Remote Info category, because RDS and Microsoft SourceSafe are not appropriate for

working with the Dreamweaver PHP MySQL server model. If you decide you want to use a

remote server to test your files, the most common choice is FTP. Dreamweaver is intelligent

enough to copy across the main details from the Remote Info category and presents

you with the dialog box shown in Figure 4-6. Although most details should be correct, the

URL prefix is almost certain to need editing.

SETTING UP A PHP SITE

123

4

Figure 4-6. When you select a remote server for testing, Dreamweaver copies details from the

Remote Info category, but you normally need to change at least the URL prefix.

As you can see from Figure 4-6, Dreamweaver combines the values in the FTP host and

Home directory fields. This produces the following value for URL prefix:

http://ftp.example.com/home/egdwcs3/html_public/

It’s vital that the URL prefix and Host directory fields point to the same place. However, this

does not mean that the values should be the same. The distinction is explained in the following

sections.

Host directory This is the pathname that the FTP program uses for the top level of your

site.

URL prefix This is the address that anyone surfing the Internet uses to reach the top level

of your site. In other words, it’s normally http:// followed by the domain name and a

trailing slash.

So, if /home/egdwcs3/html_public/index.php is your home page, and users access it by

typing http://www.example.com/index.php in their browser address bar, the correct

value for URL prefix should look like this:

http://www.example.com/

One thing to note about Figure 4-6 is that, even though the Use Secure FTP (SFTP) checkbox

is selected, the three checkboxes above and the Server Compatibility button are not

grayed out as in the Remote Info category. This is a known bug in Dreamweaver CS3. Make

sure you don’t accidentally select them if you’re using SFTP. The settings should be the

same as in the Remote Info category.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

124

Points to watch when using a remote server for testing Dreamweaver tries to make everything

seamless, regardless of whether you use a local or a remote web server for testing.

However, there are several important differences that you should be aware of with a

remote testing server.

Some software firewalls prevent FTP access when running Dreamweaver as a standard

user on Windows Vista. You may need to log in as administrator or turn off

UAC to use your remote server for testing.

You miss the main benefit of Live Data view, which allows you to view dynamic output

inside the Dreamweaver Document window without the need to load your

page into a browser. This is because Dreamweaver still needs to transfer the script

across the Internet to your remote server, rather than just handle it locally.

Live Data view uses temporary files that are removed automatically when you

switch to another site in Dreamweaver or close the program. If you test a file that’s

in a new folder, Dreamweaver creates a folder with the same name on the remote

server but not the file itself.

When you preview a page in a browser, it may not display correctly if the browser

can’t find dependent files, such as images and style sheets (see “Setting options for

Preview in Browser” later in this chapter).

If you’re on dial-up and have chosen to use your remote server for testing, be

aware that Dreamweaver automatically connects to the Internet every time you use

Live Data view, and it doesn’t automatically disconnect when you toggle Live Data

view off. Unless you are careful, you could end up with very large communications

charges.

Setting up other site options

There are seven more categories in the Site Definition dialog box. Most of the time, you

should leave them at their default values. To find out what each one is for, select it in the

Category list on the left, and click the Help button at the bottom of the dialog box to

launch context-sensitive help. Perhaps the most useful category is Cloaking, which lets you

specify folders of file types that you don’t want to be uploaded to your remote server.

Since a large part of this book deals with Spry, which is new to Dreamweaver CS3, the Spry

category needs a brief description.

Setting up for Spry

Adobe’s Ajax framework, Spry, relies on code libraries that need to be uploaded to your

remote server. By default, Dreamweaver inserts these files in a folder called SpryAssets at

the top level of your site root. For most people, this is ideal. However, if you want to locate

the code libraries elsewhere, you need to specify the folder name in the Spry category of

the Site Definition dialog box. This is so that Dreamweaver can update or remove the files

when you make changes to elements that use Spry.

As you can see from Figure 4-7, there’s just one field in the Spry category. If you want to

use a different folder, click the folder icon to the right of the field labeled Spry assets

folder, and navigate to the new location or create a new folder within your site root.

SETTING UP A PHP SITE

125

4

Figure 4-7. Change the setting for the Spry assets folder if you don’t want to use

the default location.

Saving the site definition

After entering all the necessary details, click OK at the foot of the Site Definition dialog box.

This returns you to the Manage Sites dialog box (see Figure 4-3). Click Done at the bottom

left (it’s on the right in the Mac version, as shown in Figure 4-10). Dreamweaver creates

the site cache (unless you deselected that option in Local Info) and opens the site in the

Files panel ready for you to start work. If there were any files in the root folder, they will

be listed as a tree menu in the Files panel.

You can change your site definition at any time by reopening the Manage Sites dialog box

(see “Managing Dreamweaver sites” later in this chapter).

Testing your PHP site

If you have followed the instructions carefully, you should now have a PHP site within

Dreamweaver that will give you access to all the PHP server behaviors and other PHP features.

Before moving on, it’s wise to do a quick test to make sure everything’s working as

expected.

There are two ways of testing dynamic code: using Live Data view, which displays the

dynamic output inside the Dreamweaver Document window, and by previewing the page

in a browser. These instructions cover both methods.

1. In Dreamweaver, select File ä New, and in the New Document dialog box (see

Figure 1-2 in Chapter 1), select Blank Page from the options on the left side. In the

Page Type column, choose PHP (it’s the final item). For Layout, choose (at

the top of the column), and then click Create.

2. Save the page as datetest.php in the Essential Guide site you have just created.

If you didn’t enter a value for HTTP address in the Local Info category, you might see a

warning that the URL prefix for the testing server doesn’t match the URL prefix for the

site’s HTTP address. You can safely ignore this by clicking OK.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

126

3. Open Split view, and type the following code between the tags:


echo date('l, F jS, Y');

?>

Sure, it looks pretty cryptic, but I have never understood why so many books and



tutorials feel obliged to start by showing you how to display “Hello, world” or “Hi,

Mom!” onscreen. I want to show you the real power of PHP by demonstrating

something really useful. Make sure you copy the code exactly (the first character

after the opening quote is a lowercase “L”), or use datetest.php in examples/ch04.

The first thing you should notice is that Dreamweaver displays the opening and

closing PHP tags in a bold red font, while echo and date are pale blue. This is

Dreamweaver Syntax Coloring at work. If this doesn’t happen, check that your file

name ends with .php. Also select View ä Code View Options, and make sure that

there’s a check mark next to Syntax Coloring. If there isn’t, click Syntax Coloring to

toggle the setting on.

4. Click inside Design view, and a gold shield labeled PHP should appear, as shown in

the next screenshot. This marks the location of your PHP script.

5. Click the Live Data button, as shown in Figure 4-8 (if you’re a keyboard shortcut

fetishist, press Ctrl+Shift+R/Shift+Cmd+R). As long as your web server is running,

you should see today’s date displayed in Design view. It will be highlighted in a different

color (the default is pale yellow) to indicate that it’s dynamically generated

output. You’ll learn about the first part of the script—echo—in Chapter 10; it’s one

of the most basic commands that displays PHP output onscreen. The rather cryptic

aspects of the rest of the script will be covered in Chapter 17 when we delve into

the mysteries of working with dates in PHP.

As soon as you click the Live Data button again (or use the keyboard shortcut), the

date will disappear and be replaced by the PHP gold shield.

SETTING UP A PHP SITE

127

4

6. Now press F12 (Opt+F12 on a Mac). Depending on your settings in Preferences, you

may see the following alert (see “Setting options for Preview in Browser” below).

This warns you that Dreamweaver is about to overwrite the file on your testing

server. Since it’s only a test file, click Yes. You will then probably see this dialog box:

Click No. The significance of these two alerts is explained in “Setting options for

Preview in Browser” shortly.

Your default browser should launch and display datetest.php. The result will be

similar to that shown in Figure 4-8, except that the output won’t be highlighted in

a different color. More importantly, if you view the page’s source code in the

browser, you’ll see only XHTML. PHP is a server-side language: only the output of

the PHP code is sent to the browser; the code itself remains on the server.

Troubleshooting

This is the part of the chapter that I hope nobody ever needs to read. As I said earlier, PHP

site definition in Dreamweaver is not difficult, but a lot of people do seem to get it wrong.

Troubleshooting is basically a process of elimination: find out what is working, and it

frequently helps identify where the problem lies. If you’re banging your head on the keyboard

at this point, try the following suggestions:

Figure 4-8.

If Live Data view displays the current

date, you’re ready to start working with

PHP in Dreamweaver.

DREAMWEAVER CS3 WITH CSS, AJAX, AND PHP

128

The first thing to check is whether your web server is running. Try an ordinary

.html page first. If it doesn’t display, Apache or IIS needs to be restarted.

Then check that PHP is properly configured. Use test.php as described in the previous

chapter. If the page of PHP configuration information doesn’t display, go back

to Chapter 3, and fix your PHP setup.

If the web server and PHP are OK, do you get any error messages? If you got a

blank screen, check your PHP configuration as described in the previous chapter,

and make sure that display_errors is turned on.

If an error message says something like Parse error or Fatal error, the mistake is in

the PHP code. Use the version of datetest.php from the download files instead.

If you get an error message about the URL prefix not mapping correctly, the problem

lies in the details you entered in the Testing Server category of the site definition.

If the web server and PHP are OK, but you see nothing in Live Data view, check that

a software firewall, such as Norton Internet Security or ZoneAlarm, isn’t blocking

communication between Dreamweaver and the web server.

Setting options for Preview in Browser

Pressing F12/Opt+F12 or using the menu option File ä Preview in Browser automatically

launches your default browser and displays the page currently open in the Document window.

Dreamweaver normally detects your default browser the first time that you use this

option, but you can also designate other browsers by opening Preferences from the Edit

menu (Dreamweaver menu in a Mac) and selecting the Preview in Browser category (see

Figure 4-9). If Dreamweaver has detected other browsers on your system, they are listed in

the Browsers field. You can designate one of them as your secondary browser, which can

be launched using Ctrl+F12/Cmd+F12 as a shortcut.

Figure 4-9. When previewing pages, Dreamweaver gives you the option to use a

temporary file.

SETTING UP A PHP SITE

129

No comments:

Post a Comment