PHP's virtual() and exec() functions

On most servers, the easiest way to call a CGI script from a PHP page — which is also known as embedding the CGI script into the PHP page — is to use PHP's virtual() function, like this:

<?PHP virtual("/cgi-bin/script.cgi"); ?>

But some servers don't support PHP's virtual() function.  In that case, you can use the exec() function instead.  This requires some extra code that's usually best kept in a separate file, which you might name call_script.php, although the filename can actually be whatever you'd like.  Download this file (and rename its extension from .txt to .php) to get this extra code.

In order to make that PHP file call your particular CGI script, you'll need to edit it and adjust these two lines near the top, replacing "script.cgi" with the actual filename of your CGI script:

$cgi_script_full = "$DOCROOT/cgi-bin/script.cgi";
$cgi_script_local = "/cgi-bin/script.cgi";

Now just upload call_script.php to the root (the top level) of your website, then in your PHP page, add this line wherever you want the CGI script's output to appear:

<?PHP require($_SERVER['DOCUMENT_ROOT'] . "/call_script.php"); ?>

Using URL variables with the call_script method

If you need to pass URL variables (also known as query-string variables) to the CGI script, with the virtual() method, you can include them right within the function call, for example virtual("/cgi-bin/script.cgi?year=2010").  But with the call_script method, you need to add the variables within the call_script.php file instead.  Edit that file and find the following line, near the middle of the file:

putenv("QUERY_STRING=" . $qs);

Just before that line, add the following new line:

$qs = $qs ? "$qs&year=2010" : "year=2010";

Now your call_script.php file will pass that variable to the CGI script.

Client Quotes

I just installed the demo of your product and got it up and running in no time.  I searched high and low for a decent login script and thank God I found yours.
– Adrian F.
I spent ages trying to find a way of making my own log in page for my website - if you're thinking of doing that forget it - don't waste your time!  UserBase is a 1st class product at a very reasonable price.  The software works faultlessly and can be adapted to any situation.  The service that I have received from Encodable is terrific!  I am very very impressed.  Nothing was too much trouble and I am most grateful to Anthony DiSante in particular for all his help and patience.
– Paul S.
Worked like a charm... man, this piece of software is a dream and I really appreciate all your customer service help getting this taken care of.
– Kyle M.
I just want to say you guys really stand alone in that you have a quality product and you provide genuine customer service.  It's sad but those qualities are seldom found separately, much less together.  Thanks again for your time and help.
– Alex S.
Also, I wanted to tell you that I was very skeptical about buying this script.  I've spent a lot of time and money over the past 3 months trying to find a solution that works, but I ended up having problems with so many of the scripts I tried that I was almost to the point of giving up.  But then I came across your script, and it actually does what it's supposed to.  An absolute wow.  A very impressive and powerful script indeed!  Many, many thanks!
– Mike E.
I can't thank you enough, I was up against a deadline that required me to get this up and running in 48 hours and you have probably the best customer service I've ever seen.
– Dan T.
Your scripts/software are the greatest, I mean I really love how customizable they are, how intuitive they are, and so on.  Thanks again, I love this stuff!
– Tucker O.
We searched for a long time for an application to password protect directories and allow file uploads.  Userbase & Filechucker are far superior to anything out there.  Simple yet powerful programming, extremely flexible in configuration, and great customer service.  Thanks for a superb product.
– Kat G.
Thank you VERY much for all of your help.  You've really impressed me.  We have support agreements for other software that costs thousands of dollars / year (just for the support), and most of them aren't as helpful as you have been.
– Keith Y.
There are a lot of these scripts out there, but I think they all pale in comparison to yours.
– Peter W.
The software has some great features, is well presented, runs where others are problematic and will make a good impression on our clients.  We look forward to reaping its benefits!
– Alex H.