CGI Perl Scripts - CosmicPerl.com CGI Perl Scripts - CosmicPerl.com
"We were looking for an affordable affiliate program to run 'in-house' that was versatile, robust, easy to install and tech support available if needed- CosmicPerl's AllAffiliate Pro was exactly what we were looking for and we are pleased with the results!"
-- Meredith Simpson, ConstructionClub

New to website software?
Click here for our 'newbie' guide.

CGI Perl Scripts - CosmicPerl.com

Link to us and
earn 10 + 5%
commissions!

CGi Perl Scripts - CosmicPerl.com CGi Perl Scripts - CosmicPerl.com
HomeContact
Affiliate Software
Search Software
AdSpaceSeller
CosmicContacts
CosmicTells
CosmicEmailer
Site Evaluation
Recommend Our Site
Our Mailing List
Our RSS feed
Order Here
Newbie Guide
Packages
Site Search
Custom Projects
Custom Versions
Beta Testers

About Us
Contact Us
Technical Support
Link Partners
Affiliate Program
Valid HTML 4.01!
Valid CSS!
Back

CosmicPerl.com Affiliate software integration

Confused? Click here for help

Affiliate software integration

Select your shopping cart or card processor for instructions on how to integrate. If you find that any of our guides may be out of date then please contact us.

Credit Card Processors

PayPal.com
2CheckOut.com
WorldPay.com
IBill.com
CCBill.com
CCNow.com
ClickBank.com
Authorize.net
Verisign
Plug'n'Pay
General Guide
Other?

Shopping Carts

Actinic Ecommerce
osCommerce
aMemberPro

PayPal

Method 1 Shopping cart/Sales links
This method involves changing your PayPal return page to a cgi script called thankyou.cgi. Scroll down to the section called Thankyou.cgi for more information.
Method 2 Subscriptions/Shopping cart/Sales links
This method is for automated recurring commissions support, it can also be used for shopping cart and sales link. Add the following code to each Shopping cart/Subscriptions/Sales links button HTML code:-
(AllAffiliatePro & AffiliateClick)

<input type="hidden" name="custom" value="<!--#include virtual="/cgi-bin/affiliate/passinclude.cgi" -->">

Make sure this code is in one line and not split among several and that it is within the <Form> tag along with the other hidden fields. Also be sure the virtual includes are pointing to the correct files on your server. If you have standard hyperlinks rather than HTML form buttons then add the following code to the end of the link:-
(AllAffiliatePro & AffiliateClick)

&custom=<!--#include virtual="/cgi-bin/affiliate/passinclude.cgi" -->

This uses Server Side Includes (SSI) so depending on whether your server checks for SSI automatically, you may need to rename the pages to .shtml or update your .htaccess file (apache) so that normal .htm or .html pages are parsed for SSI. Check the adding SSI to Apache with .htaccess guide if you are running apache and the SSI tags aren't being parsed.

Then from within the PayPal member area setup your Instant Payment Notification (IPN) to use the post back script. If you are already using IPN then you'll need to contact us to find a solution:-
(AllAffiliatePro)

http://www.yourdomain.com/cgi-bin/affiliate/postback.cgi?type=paypal&enc=ENCPASS
(AffiliateClick)
http://www.yourdomain.com/cgi-bin/affiliate/affiliate2.cgi?type=paypal&enc=ENCPASS

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.

2CheckOut.com

Method 1
Login to your 2CheckOut.com account, then select the 'Look & Feel' section where there is a field called 3rd party affiliate programs, enter the code:-
(AllAffiliatePro)

http://www.yourdomain.com/cgi-bin/affiliate/clickme2.cgi?id=$a_order&amount=$a_total&enc=ENCPASS

(AffiliateClick)

http://www.yourdomain.com/cgi-bin/affiliate/affiliate2.cgi?id=$a_order&amount=$a_total&enc=ENCPASS

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.

We recommend you use and configure click & click2.cgi and call securely. Make sure you read the brief explaination of why some tracking needs to be on a secure server, and it's implications. So the code would be:-
(AllAffiliatePro & AffiliateClick)

https://www.yourdomain.com/cgi-bin/affilate/click2.cgi?id=$a_order&amount=$a_total&enc=ENCPASS
Method 2
Set the post back URL to thankyou.cgi. See section thankyou.cgi below.

WorldPay

Method 1Worldpay allows you to configure your own version of the order complete page. This page is called resultsY.html, create this page (if you haven't already, there is a guide on the worldpay site) and add the following html <img> tag to the page:-
(AllAffiliatePro)

<img src="http://www.yourdomain.com/cgi-bin/affilate/clickme2.cgi?id=<WPDISPLAY ITEM=transId>&amount=<WPDISPLAY ITEM=authAmount>&enc=ENCPASS" height=1 width=1 border=0>

(AffiliateClick)

<img src="http://www.yourdomain.com/cgi-bin/affilate/affiliate2.cgi?id=<WPDISPLAY ITEM=transId>&amount=<WPDISPLAY ITEM=authAmount>&enc=ENCPASS" height=1 width=1 border=0>

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.

We recommend you use and configure click & click2.cgi and call securely. Make sure you read the brief explaination of why some tracking needs to be on a secure server, and it's implications. So the code would be:-
(AllAffiliatePro & AffiliateClick)

<img src="https://www.yourdomain.com/cgi-bin/affilate/click2.cgi?id=<WPDISPLAY ITEM=transId>&amount=<WPDISPLAY ITEM=authAmount>&enc=ENCPASS" height=1 width=1 border=0>

Method 2
Use the post back script. In the WorldPay Customer Management System, section 'Configuration Options', input the CallBack URL:-
(AllAffiliatePro)

http://www.yourdomain.com/cgi-bin/affiliate/postback.cgi?type=worldpay&enc=ENCPASS
(AffiliateClick)
http://www.yourdomain.com/cgi-bin/affiliate/affiliate2.cgi?type=worldpay&enc=ENCPASS

Then select 'callback enabled'.
Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.
Edit your WorldPay payment buttons to contain the code:-
(AllAffiliatePro & AffiliateClick)

<input type=hidden name=MC_affiliate value="<!--#include virtual="/cgi-bin/affiliate/passinclude.cgi" -->">
This uses Server Side Includes (SSI) so depending on whether your server checks for SSI automatically, you may need to rename the pages to .shtml or update your .htaccess file (apache) so that normal .htm or .html pages are parsed for SSI. Check the adding SSI to Apache with .htaccess guide if you are running apache and the SSI tags aren't being parsed.

IBill

IBill allows you to configure your own version of the order complete page for each subscription you have available. Look through their documentation to see how to do this. Make your own version of this page and add to it the following code:-
(AllAffiliatePro)

<img src="http://www.yourdomain.com/cgi-bin/affiliate/clickme2.cgi?id=%%tran?&amount=MEMBERSHIPAMOUNT&enc=ENCPASS" height=1 width=1 border=0>
(AffiliateClick)
<img src="http://www.yourdomain.com/cgi-bin/affiliate/affiliate2.cgi?id=%%tran?&amount=MEMBERSHIPAMOUNT&enc=ENCPASS" height=1 width=1 border=0>

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.

We recommend you use and configure click & click2.cgi and call securely. Make sure you read the brief explaination of why some tracking needs to be on a secure server, and it's implications. So the code would be:-
(AllAffiliatePro & AffiliateClick)

<img src="https://www.yourdomain.com/cgi-bin/affiliate/click2.cgi?id=%%tran?&amount=MEMBERSHIPAMOUNT&enc=ENCPASS" height=1 width=1 border=0>

CCBill

Login to the CCBill admin panel
Select 'Account Maintenance'
Select 'Account Admin'
Choose your subaccount
Select 'Advance' under the Modify Subaccount menu
In the box 'Approval Post URL' type:-
(AllAffiliatePro)

http://www.yourdomain.com/cgi-bin/affiliate/postback.cgi?type=ccbill&enc=ENCPASS

(AffiliateClick)

http://www.yourdomain.com/cgi-bin/affiliate/affiliate2.cgi?type=ccbill&enc=ENCPASS

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.

Update your CCBill payment links or buttons to include the affiliate pass through:-
(AllAffiliatePro & AffiliateClick)

<input type="hidden" name="referer" value="<!--#include virtual="/cgi-bin/affiliate/passinclude.cgi" -->">

Make sure this code is in one line and not split among several and that it is within the <Form> tag along with the other hidden fields. Also be sure the virtual includes are pointing to the correct files on your server. If you have standard hyperlinks rather than HTML form buttons then add the following code to the end of the link:-
(AllAffiliatePro & AffiliateClick)

&referer=<!--#include virtual="/cgi-bin/affiliate/passinclude.cgi" -->

This uses Server Side Includes (SSI) so depending on whether your server checks for SSI automatically, you may need to rename the pages to .shtml or update your .htaccess file (apache) so that normal .htm or .html pages are parsed for SSI. Check the adding SSI to Apache with .htaccess guide if you are running apache and the SSI tags aren't being parsed.

CCNow

CCNow will only let the affiliate order tracking script be called along a secure server. Make sure you read the brief explaination of why some tracking needs to be on a secure server, and it's implications. So the code to enter into the 3rd party affiliate programs box would be:-
(AllAffiliatePro & AffiliateClick)

www.yourdomain.com/cgi-bin/affiliate/click2.cgi?id=order-id-here&amount=order-amount-here&enc=ENCPASS

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.

ClickBank

This method involves logging in to your ClickBank account and changing your return pages for each sales link number to a cgi script called thankyou.cgi. In the case of ClickBank thankyou.cgi is also able to grab the order ID number. Scroll down to the section called Thankyou.cgi for more information.

Authorize.net

Method 1
This method involves changing your return page to a cgi script called thankyou.cgi. Scroll down to the section called Thankyou.cgi for more information on how that script works. Firstly login to the Authorize.net management area and go to Settings->Transaction Response->Response/Receipt URLs. Add the URL to thankyou.cgi for your installation. Now edit your Authorize.net payment links to have:-

<input type=hidden name="x_Receipt_Link_Method" value="POST">
<input type=hidden name="x_Receipt_Link_Text" value="You must click here to Complete the Transaction">
<input type=hidden name="x_Receipt_Link_URL" value="http://www.yourdomain.com/cgi-bin/affiliate/thankyou.cgi">

Method 2
This method uses the silent post feature. Login to the Authorize.net admin area an go to Settings->Transaction Response->Silent Post URL. Add the URL of your post back script. This is either:-
(AllAffiliatePro)

http://www.yourdomain.com/cgi-bin/affiliate/postback.cgi?type=authorize&enc=ENCPASS

(AffiliateClick)

http://www.yourdomain.com/cgi-bin/affiliate/affiliate2.cgi?type=authorize&enc=ENCPASS

Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.
Now update all of your payment buttons so that they include:-
(AllAffiliatePro & AffiliateClick)

<input type="hidden" name="x_Pass_Through" value="<!--#include virtual="/cgi-bin/affiliate/passinclude.cgi" -->">

Make sure this code is in one line and not split among several and that it is within the <Form> tag along with the other hidden fields. Also be sure the virtual includes are pointing to the correct files on your server.

Verisign

This method involves logging in to your Verisign account, entering "FORM CONFIGURATION" and setting your return URL method to "Return POST" and changing the return URL to "http://www.yourdomain.com/cgi-bin/affiliate/thankyou.cgi". Scroll down to the section called Thankyou.cgi for more information.

Plug'n'Pay

This method involves updating your payment buttons so that the return page is set to thankyou.cgi:-

<input type="hidden" name="success-link" value="http://www.yourdomain.com/cgi-bin/affiliate/thankyou.cgi">

Scroll down to the section called Thankyou.cgi for more information

Thankyou.cgi

Thankyou.cgi is a script designed to allow our affiliate software to integrate with Card Processors that do not allow you to display any of the order information (i.e. order id and amount) on your 'Order Complete' or 'receipt' pages. Such card processors usually provide a link off the receipt page that returns a customer to a page in your site. They usually post a few pieces of order data along with that return. If you have already made your own order complete page then thankyou.cgi will utilise it, if you haven't then please create one now.

Step 1.
Begin by editing your current thankyou page and adding to it the following code:-
(AllAffiliatePro)

<img src="http://www.yourdomain.com/cgi-bin/affilate/clickme2.cgi?id=::id::&amount=::amount::&enc=ENCPASS" height=1 width=1 border=0>

(AffiliateClick)

<img src="http://www.yourdomain.com/cgi-bin/affilate/affiliate2.cgi?id=::id::&amount=::amount::&enc=ENCPASS" height=1 width=1 border=0>

Substituting the URL to AllAffiliatePro on your server. Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.
If you do not currently have a thank you for your order page, then the template thankyou.html is provided with the before mentioned code already included.

Step 2.
Now edit the file thankyou.cgi using a text editor such as notepad. Make sure the top of the file points to perl on your server. Change the variable $valid domains to contain your domain name and your card processors domain name(s), separted by ','. Change the variable $thankyoupage so that is contains the RELATIVE server path to your order complete page. I.e If your thankyou page was in your root folder then this would look something like '../../thankyou.html'.

Step 3.
Now you must set thankyou.cgi as your order complete page. You may need to do this for each sales link or button:-

http://www.yourdomain.com/cgi-bin/affiliate/thankyou.cgi

You can also force the order amount by adding ?amount=XX:-

http://www.yourdomain.com/cgi-bin/affiliate/thankyou.cgi?amount=XX
Where XX is the price of the product, such as '99' for $99.
Thankyou.cgi will only substitute the order amount if the referring URL that calls it from is one of the valid domains you set earlier (this can be disabled). If you track your own order ID's then you can pass the order ID also. If thankyou.cgi cannot find an order ID it uses the customers IP number as the ID. The code for this is:-
http://www.yourdomain.com/cgi-bin/affiliate/thankyou.cgi?amount=XX&id=YY
Where YY is the order is. If you find your Card Processor is passing the order id and amount and thankyou.cgi is not picking it up, then please contact us and we will issue and update.

Adding SSI to Apache with .htaccess

With Apache you can choose to have normal .htm or .html files parsed for SSI. You can do this by editing your .htaccess file. If you don't have a .htaccess file then you can create one by saving a simple text file as ".htaccess" (you'll need to use the parenthasis " when saving the filename to ge the correct name .htaccess).
If you are running Apache version 1.x then add the line:-

AddType text/x-server-parsed-html .htm .html .shtm .shtml
If you are running Apache version 2.x add the line:-
AddOutputFilter INCLUDES .htm .html

General Guide

The general rule for integrating is to modify your order complete page. Most Card Processors allow you to do this, and most will allow you to display certain information from the order. The information we are interested in is the order ID and the order amount. You need to edit your order complete page so that it contains:-
(AllAffiliatePro)

<img src="http://www.yourdomain.com/cgi-bin/affilate/clickme2.cgi?id=::id::&amount=::amount::&enc=ENCPASS" height=1 width=1 border=0>

(AffiliateClick)

<img src="http://www.yourdomain.com/cgi-bin/affilate/affiliate2.cgi?id=::id::&amount=::amount::&enc=ENCPASS" height=1 width=1 border=0>

You need to swap ::id:: and ::amount:: for the symbols your card processor uses, these can be anything such as $a_order or <WPDISPLAY ITEM=transId>.Usually you will need to call from a secure server to prevent a 'Page contains non secure items' error. Do this using click and click2.cgi, and the code:-
(AllAffiliatePro & AffiliateClick)

<img src="https://www.yourdomain.com/cgi-bin/affilate/click2.cgi?id=::id::&amount=::amount::&enc=ENCPASS" height=1 width=1 border=0>
Make sure you enter the correct path to the script for your installation and swap ENCPASS for the ENC password from your installation of AllAffiliatePro or AffiliateClick. This password must be correct for the tracking to work correctly.
If you integrate your card processor using this method and it is not listed here then please contact us so that we may add it to the list.
If your card processor does not allow you to insert the order information in the page then please read the section on thankyou.cgi.

Secure Server requirement

Sometimes for the tracking to be accurate it needs to be on a secure server. So that you don't need to buy an SSL certificate for each domain you have the affiliate software installed upon we have provided 2 scripts called click.cgi and click2.cgi. These 2 scripts alone, alnong with cosmic.pm site on your secure server (such as a shared secure server). This allows the cookie to be set and retrieved through a secure connection. If you have the tracking 1x1 img tag pointing to a non secure http:// connection, and it's on a secure https:// page (such as your card processors receipt page) then the browser will popup a "Page contains insecure items error". In this event if the visitor selects not to display all items the tracking is lost. That's why you need to setup the secure click.cgi and click2.cgi scripts to prevent the browser error from appearing in some integration situations.

Furthermore the secure server must also have a p3p.xml file setup in the domain.com/w3c folder so that IE6 allows the cookies to be set properly. If you are having troubles finding a suitable secure server to upload click.cgi and click2.cgi then we can provide you one from cosmicsecure.com.

Integrating AllAffiliatePro with Actinic is pretty simple. A guide is included below. If you have any troubles then please contact support and they will assist you.

Actinic Ecommerce

Method 1
Using this method the order total is tracked including VAT and shipping.
Edit the actinic template file Act_Order04.html. There will be several copies of this file on your machine, you need to edit the correct one that Actinic uses as a template for your actual site. This file is usually in a folder such as C:\Program Files\Actinic Ecommerce vX\Sites\SITENAME\SiteHTML. If in doubt FTP to your server a check what order04.html file is on there, compairing it to the ones on your machine. Add the following line of HTML somewhere within the <body> tag:-
(AllAffiliatePro)

<IMG SRC="https://www.server.com/cgi-bin/affiliate/clickme2.cgi?amount=NETQUOTEVAR:FORMATTEDORDERTOTALCGI&id=NETQUOTEVAR:THEORDERNUMBER&enc=ENCPASS" height=1 width=1 border=0>

(AffiliateClick)

<IMG SRC="https://www.server.com/cgi-bin/affiliate/affiliate2.cgi?amount=NETQUOTEVAR:FORMATTEDORDERTOTALCGI&id=NETQUOTEVAR:THEORDERNUMBER&enc=ENCPASS" height=1 width=1 border=0>

Replacing www.server.com/cgi-bin/affiliate with your domain name, and the location of AllAffiliatePro on your server. Be sure the tag is all on the same line. We suggest placing this line just above the submit button:-
<INPUT TYPE=SUBMIT NAME=ACTION VALUE="NETQUOTEVAR:DONEBUTTON">
That's it, update your actinic site and the tracking should be working.
NOTE: If you are not using a secure server, you need to use http:// instead of https://. If your domain does not have a secure certificate, and you have a shared secure server you'll need to setup and use click and click2.cgi. Refer back to the AllAffiliatePro documentation section 'Integration' for details. If you have no access to a secure server of any kind contact us and we can arrange for you to use our secure server.

Method 2
Using this method the order sub total is tracked excluding VAT and shipping.
Step 1.
Follow method 1 above
.
Step 2.
Edit the file OrderScript.pl in a text editor such as NotePad. Search for 'expose the order', which should take you to a line that reads:-
# expose the order total in various formats for affiliate tracking links
A few lines down is the line (all on same line, may be split in browser):-

$::s_VariableTable{$::VARPREFIX.'FORMATTEDORDERTOTALCGI'} = ACTINIC::EncodeText2($sTotal, $::FALSE);
You must change this line so that $sTotal is replaced with $sSubTotal. The line should then read:-
$::s_VariableTable{$::VARPREFIX.'FORMATTEDORDERTOTALCGI'} = ACTINIC::EncodeText2($sSubTotal, $::FALSE);
That's it, update your actinic site and the tracking should be working.
NOTE: If you are not using a secure server, you need to use http:// instead of https://. If your domain does not have a secure certificate, and you have a shared secure server you'll need to setup and use click and click2.cgi. Refer back to the AllAffiliatePro documentation section 'Integration' for details. If you have no access to a secure server of any kind contact us and we can arrange for you to use our secure server

osCommerce

Add the following code to checkout_process.php above the line:-
"// send emails to other people".

////////////////////////////////
/// AllAffiliatePro integration
////////////////////////////////

$OrderTotal = $currencies->format($cart->show_total() - $total_tax);
$OrderID = $order_products_id;
tep_session_register('OrderTotal');
tep_session_register('OrderID');

////////////////////////
/// AllAffiliatePro end
////////////////////////

Add the following code within the HTML part of checkout_success.php (such as below the line <h3><?php echo TEXT_THANKS_FOR_SHOPPING; ?></h3>)

<!-- AllAffiliatePro Integration -->

<img src="http://www.YOURDOMAIN.com/cgi-bin/affiliate/clickme2.cgi?id=<?php echo $OrderID; ?>&amount=<?php echo $OrderTotal; ?>" height=1 width=1 border=0>
<?php
tep_session_unregister('OrderTotal');
tep_session_unregister('OrderID');
?>

<!-- AllAffiliatePro End -->

aMemberPro

For recurring billing integration you must modify and edit the following files:-
Edit plugins\payment\paypal_r\paypal_r.inc.php search for the line:-
global $config;
Under which ADD the following line:-
global $HTTP_COOKIE_VARS;
Then search for the line:-
'custom' => $member_id,
And REPLACE this line with:-
//////////////////////// AllAffiliatePro tracking change
// old 'custom' => $member_id,
'custom' => $member_id.'-'.$HTTP_COOKIE_VARS['AFFILIATE'].'-'.$_SERVER['REMOTE_ADDR'].'-'.$HTTP_COOKIE_VARS['AFFILIATEREF'].'-'.$HTTP_COOKIE_VARS['site'].'-'.$HTTP_COOKIE_VARS['site_'],
//////////////////////// AllAffiliatePro tracking change

Edit plugins\payment\paypal_r\ipn.php
Search for the line:-
$payer_email = $vars['payer_email'];
Under which ADD the following lines:-
//////////////////////// AllAffiliatePro tracking change

$custom_var = $vars['custom'];
list($cust_memid, $cust_affiliate, $cust_ip, $cust_ref, $cust_site, $cust_site_) = preg_split('/-/', $custom_var);

$pathtoclick2 = "http://www.YOURDOMAIN.com/cgi-bin/clickme2.cgi?want=click2";
$query = "username=" . $cust_affiliate . "&id=" . $txn_id . "&amount=" . $payment_gross . "&IP=" . $cust_ip . "&ar=0&AFFILIATEREF=" . $cust_ref . "&site=" . $cust_site . "&site_=" . $cust_site_;
$header .= "POST $pathtoclick2 HTTP/1.0\r\n";
$header .= "Content-Type: application/x-www-form-urlencoded\r\n";
$header .= "Content-Length: " . strlen($query) . "\r\n\r\n";
$fp = fsockopen ('www.YOURDOMAIN.com', 80, $errno, $errstr, 30);
if (!$fp)
{
// HTTP ERROR
}
else
{
fputs ($fp, $header . $query);
while (!feof($fp)) {
$res = fgets ($fp, 1024);
} // End loop
}
fclose($fp);

//////////////////////// AllAffiliatePro tracking change

Be sure you swap BOTH occurances of YOURDOMAIN with your actual domain name.

Is your Card Processor or shopping cart not in the list?

Please do as best you can to figure out a way of integration. If you do discover a method please post the solution on the BBS below. If you really can't figure out a solution then you can post a request below and it may or may not be answered. For AllAffiliatePro integration can be purchased at $49 where upon a member of staff will do the integration for you.

Visit the Affiliate software integration bbs

 

CGi Perl Scripts - CosmicPerl.com Copyright © 1999 - 2008 Cosmic Networks Ltd All rights reserved. CGi Perl Scripts - CosmicPerl.com