I have a shtml file index.shtml in which I want to include a PHP file which performs some programing and returns HTML data. I am trying to include my PHP file but I don't know how to do that, I tried following but nothing is working,
Following line is just printing an error, "[an error occurred while processing this directive] ":
<!--#include file="/SSI/test.php"-->
This line is displaying some junk characters:
<!--#include virtual="/SSI/test.php"-->
This line is doing nothing and displaying the command as is in the .shtml page
<?PHP
include("/SSI/test.php");
?>
Thanks
If there is no particular reason that you are using .shtml aside from what you mentioned regarding traffic, you can change its processing in your .htaccess file:
<Files *.shtml>
ForceType application/x-httpd-php
</Files>
Or you can specify that file in particular:
<Files filename.shtml>
ForceType application/x-httpd-php
</Files>
This will tell the server to parse the .shtml like it was a .php file, and therefore any PHP commands should be processed, such as your include statement. No need to change the file extension.
I could be wrong, but given the error you are getting, the problem may not in the include statement but an error in the php file to be included that is causing the problem.
I don't think you can in Apache (I've no idea about other web servers). The Apache documentation says that 'include_virtual' lets you include the results of a CGI program; but PHP isn't a CGI application in Apache's terms: it's handled by a different module, in a different way.
Colin
For the last to work simply rename your .shtml to .php but note that that will stop any shtml in there from working. But that shouldn;t be a problem if you also rewrite that to php.
Edit from your comment:
If you run apache you could add the following in your .htacces and then you could rename the file to .php
redirect permanent filename.shtml filename.php
That will redirect people visiting example.com/filename.shtml to example.com/filename.php