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
Official
PHP Website Docs
Official Zend
Website
DevShed
PHP Section
PHP Wizard
PHP Builder
PHP.CodeBase.org
The PHP Resource
Index
PHP Programs and Directories
HotScripts PHP Section
Evil Walrus
PHP Code Exchange
PHP myAdmin (useful mySQL DB manager)
Links to
More PHP Resources
Linux
Guruz PHP Resources
PHP.com Links
Section
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.
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 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 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 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 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 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
|