I have a website which uses PHP and HTML pages, I want to create a session which stores a username from the login page. But the login pages are php and the next pages are html.
Is this a problem or can I just add a small statement of php into the html page saying
<?PHP session_start();
$_session['loginid']=$_post['username'];
?>
Or am I doing it wrong?
This is the first time i've used sessions and they confuse me a little.
thanks for any help.
-
As the sessions are handled by PHP, it needs PHP to maintain the state. You need at least
session_start()
to use the session variables stored in$_SESSION
. -
You can't put php into .html files without playing around with your server's configuration files. You should only put php into .php files.
If you have a lot of .html files, you can simply rename them to .php files. It's okay to put pure html into
something.php
. So, you should make sure that all of your files end with .php, and then you can put any session logic you want into them. -
You are trying to share a PHP session variable with a page that is of type text/html. As you suggested you must make the HTML page a PHP page for this to work and add a little snippet of PHP somewhere to display the user name.
Change your HTML page to PHP. At the top of the page add something like this:
<?php session_start(); // must be before any output $username = $_SESSION['username']; // or whatever you called it // check that $username is valid here (safe to display) ?> html here Hello <?= $username ?>!
Pim Jager : Note that this requires short-tags, for maximum support use: in the last line. Also as said, make sure to clean HTML tags from $username there. Otherwise they'll be shown in your page (XSS) -
If you have access to your apache configuration, or a simple .htaccess file, you can tell Apache to handle php code inside of an .html file. You can do this by creating an .htaccess file (remember the . (dot) as the first character in that filename) on the document root of the site (probably public_html/) and putting this into it:
# Add this to public_html/.htaccess file AddHandler application/x-httpd-php .html AddHandler application/x-httpd-php .htm
You should be able to reload the html page and your PHP code (from Michael Matthews answer) will run great.
TravisO : Of course don't forget that parsing every HTML page with the PHP engine is a minor slowdown, but probably not one you'd ever notice.localshred : I agree, though it is only a slow down if you have any pages on the site that truly are static. Otherwise, it's the exact same thing as doing everything under a .php extension.
0 comments:
Post a Comment