Chapter One - General Account Information
Chapter Two - Control Panel
Chapter Three - FTP Instructions
Chapter Four - Telnet Instructions
Chapter Five - POP3 Email Settings
Chapter Six - Mail Server
Chapter Seven - Microsoft FrontPage
Chapter Eight - Anonymous FTP
Chapter Nine - Site Statistics
Chapter Ten - Password Protect Dirs

Chapter Eleven - CGI-Bin
Chapter Twelve - Secure Socket Layer (SSL)
Chapter Thirteen - Changing Passwords
Chapter Fourteen - SubDomains
Chapter Fifteen - PreInstalled Scripts
Chapter Sixteen - MySQL
Chapter Seventeen - Faqs
Chapter Eighteen - PHP/SSI
Chapter Nineteen - Real Audio/Real Video
Chapter Twenty - Policy & Disclaimer

CHAPTER EIGHTEEN - PHP/SSI


PHP

PHP is a server-side HTML embedded scripting language that was developed in C and is designed especially for working with relational database systems.

A PHP program is embedded directly in the HTML document. It must have a .phtml extension in order for the server to look for PHP code in the document. Here is
how you embed the PHP:

<?
insert PHP code here
?>

PHP is an excellent way to embed scripting languages such as C, Java, and Perl into your website's pages.  It is a very efficient way to implement advanced tasks such as database queries, as well.  

You can implement and maintain a mySQL database entirely with the use of PHP as well.  You might want to see this Introduction to PHP if you aren't sure what PHP is.

These are some additional sites and resources which will help you learn and develop your PHP skills, as well as answer any questions that you may have.

Learning PHP Resources

PHP Programs and Directories

Links to More PHP Resources


SSI

ABOUT SERVER SIDE INCLUDES
A server side include, or SSI, is a piece of code that is embedded into an HTML page and interpreted by the the server before the page is sent to the client's browser. SSI's allow you to include information in your HTML files like a file's date of last modification, another HTML file, a counter, or the output of any CGI script.

Server Side Includes are server intensive. Because all files need to be parsed by the server, having all of your pages SSI would cut performance.

Any file that has the extension .shtml will automatically be parsed by the server. You can use index.shtml instead of index.html as your default directory file.

SSI COMMANDS

SSI Commands The following is a list of Server Side Include basics: A server side include command is contained within a comment tag: <!--#command argument="value" -->

Syntax must be correct, or your include will not work.


The INCLUDE Command

To include the contents of another file in a shtml file, you use the include command.

The include command has two possible arguments: virtual and file.

"Virtual" is used when the path to the document is given relative to the document root (usually your www directory.)

"File" is used when the path to the document is given relative to the shtml file itself. However, you cannot use "file" to go up a directory ( "../slime.html" won't work.)

Say we want to include the file named "file.html" which resides in the same sub directory of as this shtml file.

To include it using "virtual," you would use:
<!--#include virtual="/mirror/ssi/file.html" -->


This would return: This is from file.html

To include it using "file," you would use:
<!--#include file="file.html" -->


This would return: This is from file.html

The ECHO Command

The echo command includes, or "echoes," the contents of an environment variable. Here are some examples showing the SSI tag and the results :

<!--#echo var="DOCUMENT_NAME" -->
This document is named: man7.htm
<!--#echo var="DATE_LOCAL" -->
You accessed this document: Tuesday, 03-Jan-98 14:02:35 EDT
<!--#echo var="DATE_GMT" -->
This is the same as the above, but in Greenwich Mean Time: Tuesday, 03-Jan-98 18:02:35 EST
<!--#echo var="DOCUMENT_URI" -->
The URI (the path form document root) of this document is: /manual/man7.htm
<!--#echo var="LAST_MODIFIED" -->
This document was last modified: Friday, 01-Nov-96 15:22:57 EST
<!--#echo var="HTTP_REFERER" -->
The user came by way of a link from: http://www.liquidweb.com/manual/index.html
<!--#echo var="HTTP_USER_AGENT" -->
The browser used to access this document was: Mozilla/4.0b3 [en] (WinNT; I)

Echo Command Values

SERVER_SOFTWARE server application
SERVER_NAME hostname of the server
SERVER_PROTOCOL server protocol
SERVER_PORT listening TCP port
REQUEST_METHOD HTTP method used by the client
REMOTE_HOST domain name of the client, note DNS option must be set
REMOTE_ADDR IP address of the client
AUTH_TYPE method that the client used for authorization
REMOTE_USER username entered by the remote client
CONTENT_TYPE MIME type of the content posted by the client
CONTENT_LENGTH size of the data posted by the client
DOCUMENT_NAME name of the document requested
DOCUMENT_URI URL of the document requested
DATE_LOCAL current date, format specified by the config command
DATE_GMT The current GMT, format specified by the config command
LAST_MODIFIED document modified date, format specified by the config command
PAGE_COUNT number of hits on the current document since server came on-line
TOTAL_HITS number of documents server has served since coming on-line
REFERRER The URL of the document the viewer came from

The EXEC Command

The exec command executes a Unix command or CGI script. It always takes the argument "cmd".

<!--#exec cmd="/usr/bin/date" --> This executes the Unix date command.
<!--#exec cgi="./hello.cgi" --> This executes the CGI script, hello.cgi.


If you look carefully you will notice the second line uses the statement exec cgi opposed to the previous line which used exec cmd. The second line is calling a CGI script that was written, the first a UNIX command. Here is the perl code contained in hello.cgi:

 #!/bin/perl
print "Hello";
exit;

All the environment variables passed to the CGI script are the same as those for the shtml file itself.

So, you cannot pass a query string using a question mark (?), as in:

 <!--#exec cmd="hello.cgi?query" -->

The query string passed to the CGI script will be the same as the query string passed to the shtml file itself. If this file were referenced as "ssi.shtml?snort", than the word "snort" would also be passed to the "hello.cgi" script above.

The FSIZE Command

The fsize command returns the size of the specified file in bytes. It uses the argument "virtual," which is the path to the file is given relative to the document root (usually your www directory.)

To find the size of picture.gif, you would use:

 <!--#fsize virtual="graphics/picture.gif" -->

This would return then return the file size.

 Your probably now asking, what can I use this for? Example: You offer some files available for download on your site and would like to give people an idea of how big the files are.

 The FLASTMOD Command

The flastmod command returns the date the specified file was last modified.

The flastmod command uses the argument "virtual," which is the path to the file is given relative to the document root (usually your www directory.)

To find the last modified date of a file, you would use:

 <!--#flastmod virtual="filename.txt" -->

This would return: Friday, 06-Sep-96 03:36:06 EDT

 The CONFIG Command

The config command is used to control how the results of other SSI are displayed. There are three possible arguments: timefmt, sizefmt and errmesg.

To set the format for the date to dd/mm/yy, you will use:

 <!--#config timefmt="%d/%m/%y" -->

The date will now be displayed as: 03/06/97

The field descriptors used by this SSI tag are the same as those used by the Unix date command.

Notice the dates displayed above this config command use the normal date format, the one below it uses the new format.

To set the format for how file sizes are displayed, you use:

 <!--#config sizefmt="abbrev" -->

or:

 <!--#config sizefmt="bytes" -->

Depending on whether you want the size given in total bytes or abbreviated as "1k".

To set error message returned when an SSI tag fails, use:

 <!--#config errmsg="Error" -->

A failed SSI tag will now return: Error



Reasons for Using SSI:
SSI is often used to include something into an HTML page. You can insert the contents of one HTML page into another page. An example of a practical usage for this would be to include your e-mail address at the bottom of each page. If you do this as an include, then when your e-mail address changes, you will only have to update it on one page and not your entire web site. Another usage is to call cgi scripts into action. Many counters, clocks, and other scripts are called using SSI. The command used will most likely be provided in the documentation of your cgi script.

More Help for using SSI can be found at:
http://hoohoo.ncsa.uiuc.edu/docs/tutorials/includes.html
http//bignosebird.com/ssi.shtml
http//getscript.com/ssi.shtml
http//carleton.ca/~dmcfet/html/ssi2.html
http/sonic.net/~nbs/unix/www/ssi/
http//useforesite.com/tut_ssi.shtml


©Copyright 1998
AMS. All Rights Reserved.
The entire contents of this site is copyrighted and may not be reproduced for any purpose without prior written permission.

Please contact the Webmaster for AMS with comments or broken link information on this site.