I want to redirect a page automatically in PHP
Logout.php:
<?php
include "base.php";
$_SESSION = array(); session_destroy();
?>
<meta http-equiv="refresh" content="=0;URL=index.php" />
Where base.php calls the database and starts the session:
<?php
session_start();
$dbhost = "localhost";
$dbname = "login";
$dbuser = "root";
$dbpass = "";
mysql_connect($dbhost, $dbuser, $dbpass) or die("MySQL Error: " . mysql_error());
mysql_select_db($dbname) or die("MySQL Error: " . mysql_error());
?>
When pressing logout, I am not getting back to index.php
.
This should work, you had an extra =
before 0
:
<meta http-equiv="refresh" content="0;URL=index.php" />
Linky https://en.wikipedia.org/wiki/Meta_refresh
As far as I know, HTML
, JavaScript
and PHP
provide their own way of page / header redirection. Here are three examples, showing how to redirect to http://google.com
# JavaScript:
<script type="text/javascript">
window.location = "http://google.com";
</script>
# HTML:
<meta http-equiv="refresh" content="0; URL='http://google.com'"/>
Note The 0 in content="0;
, is a value for seconds. It tells the browser how many seconds it should wait before starting the redirect.
# PHP:
<?php
header('Location: http://www.google.com');
Note A PHP header()
must be Always be placed before outputting anything to the browser; even a single empty space. Otherwise, it will cause the infamous "header already sent" errors.
you can put this on your PHP code:
header('Location:index.php');
Note that as per all headers, this must be placed before any output (even whitespace).
Meta refresh syntax is slightly wrong
<meta http-equiv="refresh" content="0;URL='<?php echo $_SERVER['HTTP_HOST']; ?>/index.php'">
More details here
http://en.wikipedia.org/wiki/Meta_refresh
The cleaner way is to send a http redirect header
More details here
http://en.wikipedia.org/wiki/HTTP_301
logout.php
<?php
..
session_destroy();
header( 'HTTP/1.1 301 Moved Permanently');
header( 'Location: ' . $_SERVER['HTTP_HOST'] . '/index.php' );
exit(0);
Concerning absolute URIs in redirects W3C says
14.30 Location
The Location response-header field is used to redirect the recipient to a location other than the Request-URI for completion of the request or identification of a new resource. For 201 (Created) responses, the Location is that of the new resource which was created by the request. For 3xx responses, the location SHOULD indicate the server's preferred URI for automatic redirection to the resource. The field value consists of a single absolute URI.
Location = "Location" ":" absoluteURI
An example is:
Location: http://www.w3.org/pub/WWW/People.html
Source: http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html