Simple php include() not working - php

I'm familiar with HTML but only just starting to learn php. I can't seem to figure out why this code isn't working. I've previously had no problems with include()'s but that is when the php code is it's own distinct file. This time around I'm trying to create a dynamic web page with php scripts. I have apache running with xampp and I have the gf.css file and testing.php in the same folder as the main html file.
The problem I can't seem to figure out is that nothing is showing up in the text box when I try and run the HTML page. It seems as though nothing in the php tags is running. I put in echo statements to try and determine what the problem was but nothing showed up unless, however, I placed a h1 tag after the first " in my echo statement. But inn this case, no matter where I placed the closing h1 tag, the rest of the php script just printed. It was as if I couldn't close the tag.
That's as much info as I can give really. Any help and/or explanations as to what I'm doing wrong would be much appreciated! Thanks in advance.
Here's the HTML file
<html>
<head>
<link rel='stylesheet' type='text/css' href='gf.css'>
<body>
<h1>This is my web page</h1>
<div id='main_box'>
<?php
include ('testing.php');
?>
</div>
</body>
</head>
</html>
Here's the .css file
#main_box
{
height:500px;
width:400px;
color:white;
background-color:1e1e1e;
}
And here's the testing.php file if that matters
<?php
echo "test page";
?>

If you want to write php code then file extension must be ".php". So change your main HTML file extension to PHP.

First Solution:
If you want to write php code then file extension must be ".php". So change your main HTML file extension to PHP.
Second Solution:
You can tell Apache to treat .html files as PHP by adding a new FilesMatch directive:
1. Open C:/xampp/apache/conf/extra/httpd-xampp.conf
2. Search:
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
3. Add those three line:
<FilesMatch "\.html$">
SetHandler application/x-httpd-php
</FilesMatch>
Third Solution:
You can do it by adding an .htaccess file into your document root that contains:
AddHandler application/x-httpd-php .html

Related

Server Side Includes putting php in html

I am trying to print the output of php file in HTML using server side includes.
Here is the code of index.html file.
<!DOCTYPE html>
<html>
<body>
<!--#include file="include.php" -->
<h1>This is a Example Of Server Side Includes</h1>
</body>
</html>
Here is the code of my include.php file.
<?php
echo "Hello From PHP\n";
echo "Hello To HTML\n";
?>
Here is the content of my .htaccess file.
Options +Includes
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
All the files located in /var/www/html.
This is the screen shot of while executing index.html.
Does Server Side Includes also work in localhost? if yes How to configure?
And where to put .htaccess file in var/www/html.
If you are using Nginx, an example of how to use SSI (Server Side Includes) is below:
<!--# include virtual="/body.php?argument=value" -->
Nginx SSI Docs
If you're using PHP, you need to have a file with the PHP extension. You cannot use PHP in a file with an HTML extension. Change index.html to index.php
If localhost does support ssi, it wouldn't be supported in an html file. Try changing the name to index.shtml. Also, since your include path is relative, try <!--#include file='...'-->
Or, you could just try what the other answers say, and use php instead.

Include PHP header in my HTML files [duplicate]

How can I run simple PHP code inside a .html file?
To execute 'php' code inside 'html' or 'htm',
for 'apache version 2.4.23'
Go to '/etc/apache2/mods-enabled'
edit '#mime.conf'
Go to end of file and
add the following line:
"AddType application/x-httpd-php .html .htm"
BEFORE tag '< /ifModules >'
verified and tested with 'apache 2.4.23'
and 'php 5.6.17-1'
under 'debian'
You can't run PHP in an html page ending with .html. Unless the page is actually PHP and the extension was changed with .htaccess from .php to .html
What you mean is:
index.html
<html>
...
<?php echo "Hello world";?> //This is impossible
index.php //The file extension can be changed using htaccess, ex: its type stays php but will be visible to visitors as index.html
<?php echo "Hello world";?>
thanks for the ideas but none works here. So i did that...
I am using xampp last version on 2014.
go to \xampp\apache\conf\extra\httpd-xampp.conf.
we will find this bit of code:
<IfModule php5_module>
**<FilesMatch "\.php$">**
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
PHPINIDir "C:/xampp/php"
</IfModule>
Focus on second line, so we must to change to:
<IfModule php5_module>
**<FilesMatch "\.(php|html)$">**
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
PHPINIDir "C:/xampp/php"
</IfModule>
And that is it. Works good!
Simply you cant !! but you have some possbile options :
1- Excute php page as external page.
2- write your html code inside the php page itself.
3- use iframe to include the php within the html page.
to be more specific , unless you wanna edit your htaccess file , you may then consider this:
http://php.about.com/od/advancedphp/p/html_php.htm
Yes, you can run PHP in an HTML page.
I have successfully executed PHP code in my HTML files for many years. (For the curious, this is because I have over 8,000 static HTML files created by me and others over the last 20 years and I didn't want to lose search engine ranking by changing them and, more importantly, I have too many other things to work on).
I am not an expert -- below is what I've tried and what works for me. Please don't ask me to explain it.
Everything below involves adding a line or two to your .htaccess file.
Here is what one host ( http://simolyhosting.net ) support did for me in 2008 -- but it no longer works for me now.
AddHandler application/x-httpd-php5 .html .htm
AddType application/x-httpd-php5 .htm .html
That solution appears to be deprecated now, though it might work for you.
Here's what's working for me now:
AddType application/x-httpd-lsphp .htm .html
(This page has PHP code that executes properly with the above solution -- http://mykindred.com/bumstead/steeplehistory.htm )
Below are other solutions I found -- they are NOT MINE:
https://forums.cpanel.net/threads/cant-execute-php-in-html-since-ea4-upgrade.569531
I'm seeing this across many servers I've recently upgraded to EA4. Using cPanel Apache handlers or adding this directly in to .htaccess (same as cPanel does through gui add handlers):
AddHandler application/x-httpd-php5 .html
Sep 9, 2016
AddHandler application/x-httpd-ea-php56 .html
https://help.1and1.com/hosting-c37630/scripts-and-programming-languages-c85099/php-c37728/parsing-php-code-within-html-pages-a602364.html
Open a text editor such as wordpad, notepad, nano, etc. and add the following line:
AddHandler x-mapp-php5 .html .htm
If you want to use PHP 5.4 instead of PHP 5.2 then use the following line instead:
AddHandler x-mapp-php6 .html .htm
https://www.godaddy.com/community/Developer-Cloud-Portal/Running-php-in-html-files/td-p/2776
To run HTML using FastCGI/PHP, try adding this code to the .htaccess file for the directory the script is in:
Options +ExecCGI
AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
You can add additional lines for other file extensions if needed.
You need to make the extension as .php to run a php code
BUT if you can't change the extension you could use Ajax to run the php externally and get the result
For eg:
<html>
<head>
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
url:'php_File_with_php_code.php',
type:'GET',
data:"parameter=some_parameter",
success:function(data)
{
$("#thisdiv").html(data);
}
});
});
</script>
</head>
<body>
<div id="thisdiv"></div>
</body>
</html>
Here, the JQuery is loaded and as soon as the pages load, the ajax call a php file from where the data is taken, the data is then put in the div
Hope This Helps
I'm not sure if this is what you wanted, but this is a very hackish way to include php. What you do is you put the php you want to run in another file, and then you include that file in an image. For example:
RunFromHTML.php
<?php
$file = fopen("file.txt", "w");
//This will create a file called file.txt,
//provided that it has write access to your filesystem
fwrite($file, "Hello World!");
//This will write "Hello World!" into file.txt
fclose($file);
//Always remember to close your files!
?>
RunPhp.html
<html>
<!--head should be here, but isn't for demonstration's sake-->
<body>
<img style="display: none;" src="RunFromHTML.php">
<!--This will run RunFromHTML.php-->
</body>
</html>
Now, after visiting RunPhp.html, you should find a file called file.txt in the same directory that you created the above two files, and the file should contain "Hello World!" inside of it.
<?php
echo '<p>Hello World</p>'
?>
As simple as placing something along those lines within your HTML assuming your server is set-up to execute PHP in files with the HTML extension.

How can I run a PHP script inside a HTML file?

How can I run simple PHP code inside a .html file?
To execute 'php' code inside 'html' or 'htm',
for 'apache version 2.4.23'
Go to '/etc/apache2/mods-enabled'
edit '#mime.conf'
Go to end of file and
add the following line:
"AddType application/x-httpd-php .html .htm"
BEFORE tag '< /ifModules >'
verified and tested with 'apache 2.4.23'
and 'php 5.6.17-1'
under 'debian'
You can't run PHP in an html page ending with .html. Unless the page is actually PHP and the extension was changed with .htaccess from .php to .html
What you mean is:
index.html
<html>
...
<?php echo "Hello world";?> //This is impossible
index.php //The file extension can be changed using htaccess, ex: its type stays php but will be visible to visitors as index.html
<?php echo "Hello world";?>
thanks for the ideas but none works here. So i did that...
I am using xampp last version on 2014.
go to \xampp\apache\conf\extra\httpd-xampp.conf.
we will find this bit of code:
<IfModule php5_module>
**<FilesMatch "\.php$">**
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
PHPINIDir "C:/xampp/php"
</IfModule>
Focus on second line, so we must to change to:
<IfModule php5_module>
**<FilesMatch "\.(php|html)$">**
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source
</FilesMatch>
PHPINIDir "C:/xampp/php"
</IfModule>
And that is it. Works good!
Simply you cant !! but you have some possbile options :
1- Excute php page as external page.
2- write your html code inside the php page itself.
3- use iframe to include the php within the html page.
to be more specific , unless you wanna edit your htaccess file , you may then consider this:
http://php.about.com/od/advancedphp/p/html_php.htm
Yes, you can run PHP in an HTML page.
I have successfully executed PHP code in my HTML files for many years. (For the curious, this is because I have over 8,000 static HTML files created by me and others over the last 20 years and I didn't want to lose search engine ranking by changing them and, more importantly, I have too many other things to work on).
I am not an expert -- below is what I've tried and what works for me. Please don't ask me to explain it.
Everything below involves adding a line or two to your .htaccess file.
Here is what one host ( http://simolyhosting.net ) support did for me in 2008 -- but it no longer works for me now.
AddHandler application/x-httpd-php5 .html .htm
AddType application/x-httpd-php5 .htm .html
That solution appears to be deprecated now, though it might work for you.
Here's what's working for me now:
AddType application/x-httpd-lsphp .htm .html
(This page has PHP code that executes properly with the above solution -- http://mykindred.com/bumstead/steeplehistory.htm )
Below are other solutions I found -- they are NOT MINE:
https://forums.cpanel.net/threads/cant-execute-php-in-html-since-ea4-upgrade.569531
I'm seeing this across many servers I've recently upgraded to EA4. Using cPanel Apache handlers or adding this directly in to .htaccess (same as cPanel does through gui add handlers):
AddHandler application/x-httpd-php5 .html
Sep 9, 2016
AddHandler application/x-httpd-ea-php56 .html
https://help.1and1.com/hosting-c37630/scripts-and-programming-languages-c85099/php-c37728/parsing-php-code-within-html-pages-a602364.html
Open a text editor such as wordpad, notepad, nano, etc. and add the following line:
AddHandler x-mapp-php5 .html .htm
If you want to use PHP 5.4 instead of PHP 5.2 then use the following line instead:
AddHandler x-mapp-php6 .html .htm
https://www.godaddy.com/community/Developer-Cloud-Portal/Running-php-in-html-files/td-p/2776
To run HTML using FastCGI/PHP, try adding this code to the .htaccess file for the directory the script is in:
Options +ExecCGI
AddHandler fcgid-script .html
FCGIWrapper /usr/local/cpanel/cgi-sys/php5 .html
You can add additional lines for other file extensions if needed.
You need to make the extension as .php to run a php code
BUT if you can't change the extension you could use Ajax to run the php externally and get the result
For eg:
<html>
<head>
<script src="js/jquery.min.js"></script>
<script>
$(document).ready(function(){
$.ajax({
url:'php_File_with_php_code.php',
type:'GET',
data:"parameter=some_parameter",
success:function(data)
{
$("#thisdiv").html(data);
}
});
});
</script>
</head>
<body>
<div id="thisdiv"></div>
</body>
</html>
Here, the JQuery is loaded and as soon as the pages load, the ajax call a php file from where the data is taken, the data is then put in the div
Hope This Helps
I'm not sure if this is what you wanted, but this is a very hackish way to include php. What you do is you put the php you want to run in another file, and then you include that file in an image. For example:
RunFromHTML.php
<?php
$file = fopen("file.txt", "w");
//This will create a file called file.txt,
//provided that it has write access to your filesystem
fwrite($file, "Hello World!");
//This will write "Hello World!" into file.txt
fclose($file);
//Always remember to close your files!
?>
RunPhp.html
<html>
<!--head should be here, but isn't for demonstration's sake-->
<body>
<img style="display: none;" src="RunFromHTML.php">
<!--This will run RunFromHTML.php-->
</body>
</html>
Now, after visiting RunPhp.html, you should find a file called file.txt in the same directory that you created the above two files, and the file should contain "Hello World!" inside of it.
<?php
echo '<p>Hello World</p>'
?>
As simple as placing something along those lines within your HTML assuming your server is set-up to execute PHP in files with the HTML extension.

can't seem to get php working in MAMP

I'm trying to learn php and step one is getting php working in some capacity. I'm attempting to use MAMP but I'm having some trouble.
Specifically: if I create a file with the below code and save it as index.html in MAMP's "Document Root" directory, I get a blank page when pointing my browser at http://localhost:8888/index.html.
Code:
<html>
<body>
<?php
echo "Hello World!";
?>
</body>
</head>
Alternatively, if I put a bit of php into its own file (say test.php) and then point my browser at this file, it just displays the full text of the file in the browser.
Any ideas what I might be doing wrong?
I had the similar issue.
Make a new file in TextWrangler or Komodo, or whatever, and add the folllowing code:
AddType application/x-httpd-php .html .htm
AddHandler application/x-httpd-php .html .htm
You're going to save the file as .htaccess (with the dot in the front; this is the file name).
Save it in /Applications/MAMP/htdocs. This is the same place you'll save your php and html files. This .htaccess will be an invisible file; you will not see it in Finder, tho you can if you cd to it in Terminal, or searching w/in Finder and choosing the File Visibility type under Kind.
Now try going to localhost:8888/ and you should see all of the available files there. And with this newly created .htaccess file, you can now embed php inside an html file too.
In MAMP, edit the file:
/Applications/MAMP/conf/apache/httpd.conf
and then search for '#AddHandler type-map' (exclude quotes). Below that, add,
AddHandler application/x-httpd-php .php .html
Save the file and stop and re-start MAMP. Php parsing will occur in files ending with the extensions: .php and .html.
You must save a file with PHP inside it with a .php extension. So you would need to name it index.php instead of index.html. Simple fix.
So, this just worked for me:
instead of having:
MAMP/htdocs/folder-that-contains-all-files/
put all your files directly in the htdocs folder!
so:
MAMP/htdocs/all your files including index.php etc.
Hope that helps!
Modifying /Applications/MAMP/conf/apache/httpd.conf
searching for #AddHandler type-map
and inserting AddHandler application/x-httpd-php .php .html
worked for me.

PHP script not working in HTML file

I'm new to PHP. I installed XAMPP and have Apache running. I created helloworld.php in XAMPP's htdocs and got PHP to display in my browser. My question is, why does my PHP script in my HTML file not display in my browser? Ive never installed PHP on its own. Should I also install it? Would it conflict with XAMPP. My code is below. Any assistance will be appreciated. Thanks in advance:
<html>
<body>
<?php
echo "Hello PHP World";
?>
</body>
</html>
I assume you are trying to use php inside .html file?
Try adding .htaccess file or changing apache config with the following line:
AddHandler application/x-httpd-php .html
XAMPP already includes PHP, but unless you end the script name with .php it is unlikely to be processed by the PHP engine.
Stop the apache service, then add one change in c:\xampp\apache\conf\httpd.conf in the section by adding...
AddType application/x-httpd-php .html .htm
Restart apache!
This looks like a big fat 'feature' in the current xampp distribution for win 32-bit.
You should add mime type at http conf
for instance in apache at httpd.conf
entry
<IfModule mime_module>
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
TypesConfig "conf/mime.types"
.......
AddType application/x-httpd-php .html .htm
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
</IfModule>
The php module for apache registers itself as handler for the mime type application/x-httpd-php. And the configuration file apache\conf\extra\httpd-xampp.conf contains the lines
<FilesMatch "\.php$">
SetHandler application/x-httpd-php
</FilesMatch>
which tells the apache that all files having .php as name extension are to be processes by the handler for application/x-httpd-php.
If you (really) want to have your .html files handled by the php module as well you have to add something similar for .html extensions. (there are other methods to tell the apache which extension maps to which mime type/handler. But FilesMatch/SetHandler is fine.)
If you want to enable this "feature" for only one directory you can use an .htaccess file to change the configuration for that directory (and its subdirectories).
Too much overkill. All these suggestions lead me down the wrong path for like 5 hours. JK, but I did read a lot of google search items all giving wrong answers and each suggestion was just adding more wrong answers.
The answer is in fact so simple you would want to bang your head: Simply change the file extension from ".html" to ".php"!!! Remember that you can build a webpage entirely out of PHP and all JavaScript and stuff built off JavaScript like, JQuery, bootstrap, etc will work.
Here is a simple example of proof:
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Blank Web Page</title>
<link rel="stylesheet" type="text/css" href="css/css.css">
</head>
<body>
<?php
$son = 5;
$nos =10;
echo $son + $nos;
?>
<h4>test to see if this html element can be output too!</h4>
<script type="text/javascript" src="js/js.js"></script>
</body>
Notice that I am using your standard html, even though it doesn't show my HTML tags(trust me it's there), web page stuff and have php code inserted inside. Of course the result is 15 and the html element h4 renders correctly too. Change the extension back to "html" and you will get only the h4 element and you will find that your php code has been commented out using multi-comment for html.
I forgot to add that this works for Xampp too.

Categories