• Looking for a Top Flight Web Development Team?
  • Professional & Affordable Web Design Services
  • Shaping Imaginations using Cutting-Edge Technologies
  • Dynamic Solutions for Dynamic Businesses
  • Analysis.. then Solutions with a High Tech Flair
  • Satisfied Customers In Over 30 Countries
  • National Association of
    Accredited Internet Professionals
  • (561)948-6074
 
Custom Web Design Companies
 
Conditional SSI usage

Article by David Rutstein; Web Designer, Internet Marketing Expert and CEO, www.webdesignoffice.us

While many of you are familiar with SSI (Server Side Includes) and its tremendous usefulness as a server feature, did you know that the technology supports conditions? Imagine being able to give your SSI code logic, so it executes different commands, depending on variables such as browser type, time of day, referring URL, and whatever else can be accessed and compared in Perl. Something like that would be nothing less than revolutionary, and fortunately, possible!

 

Just to review, SSI are "codes" you place on your page that the server picks up and executes. The most common use of SSI is to include a file on the page:

 

<!--#include file="afile.htm" -->

The above command will cause the file "afile.htm" to be inserted and displayed, as if it were manually added to the page.

 

Adding Condition to the Mix

 

This is what we're here for- to learn how to supply SSI with a little intelligence. Time to unveil the four flow-control statements of Server Side Includes:

 

<!--#if expr="expression"-->
<!--#elif expr="expression"-->
<!--#else-->
<!--#endif-->

 

They work as you would expect with any if/else statements. In JavaScript, the above would be equivalent in logic to "if", "else if", and "else", respectively. The last command is an odd ball; it serves no particular purpose except that's it's needed at the end of each conditional SSI definition. Take a look at the following example, which embeds two different files onto the page, depending on whether the user is using Internet Explorer or not:

<!--#if expr="${HTTP_USER_AGENT} = /MSIE/" -->  <!--#include file="iebar.htm" --> 
<!--#else --> <!--#include file="defaultbar.htm" --> <!--#endif -->

Output:

 

[an error occurred while processing this directive]

Got your attention now, didn't I? By using conditional SSI, with the environmental variable HTTP_USER_AGENT as the condition to test for, the above example allows us to display browser specific content in such a versatile way that no client side language (such as JavaScript) can match. It's SSI with a brain baby!

 

Taking Things One Step Further

 

Let's now build on what we have so far, and create a more refined example that discriminates not only between browser type, but browser version as well.

How about a SSI code that differentiates between IE 4, NS 4, and neither?

<!--#if expr="${HTTP_USER_AGENT} = /MSIE [4-9]/"-->
You are using IE 4 or above<BR>
<!--#elif expr="${HTTP_USER_AGENT} = /Mozilla\/[4-9]/"-->
You are using Netscape 4 or above<BR>
<!--#else -->
You are using something other than IE 4+ or NS 4+<BR>
<!--#endif -->

 

Output: You are using IE 4 or above


If you're not familiar with Perl programming, then parts of the above code undoubtedly look alien to you. Without this being a Perl tutorial, in a nutshell, regular expressions is used to extract out the relevant browser info in HTTP_USER_AGENT. The variable contains the following:

 

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

Use a different browser, and note the difference in the output.

 

Professional Web Designer, E-commerce Solutions, Graphic designer   and Printing solutions provider  

In Conclusion


We've introduced here in general how to implement conditional SSI. The examples shown above are just a peek into the possibilities...how smart your SSI codes are now depends on your knowledge of Perl programming. Either way, time to get crackin'!

Resources:

 

Web Design Directory

DesignDir.net is an industry leading web design and development directory. We bring together the best designers and their customers.

 

Approved Members of the EasyFind Web Design Directory  

 

Web Design Perth & Internet Marketing Australia

 

Graphic Design
FreelanceDesigners.com  

 

Back
to Top