Archive

Posts Tagged ‘refresh’

HTML Meta Refresh

May 22nd, 2008 No comments

To get a webpage to refresh every few seconds you can use a meta tag with the attribute http-equiv and a value of refresh. The number of seconds to delay can be put into the content attribute. This meta tag (as will all meta tags) goes into the head section of the document.

Here is an example that refreshes the page every 2 seconds.

<meta http-equiv="refresh" content="2" />

It is also possible to make the browser refresh to another page by including the string

url=url or filename

within the content attribute. Here is an example that redirects the page to google.com after a 5 second delay.

<meta http-equiv="refresh" content="5;url=http://www.google.com" />

Categories: (X)HTML Tags: , ,

PHP Page Redirection

March 12th, 2008 No comments

To redirect to a different page using PHP you can use the header() function with the parameter ‘Location: ‘ and the destination of the redirect.

header('Location: http://www.talkincode.com');

However, if any headers are sent before this function call then the script will fail. To get around this you can either ensure that nothing is printed out on the page, or if that is not possible for some reason then you can use a JavaScript redirect. The headers_sent() function will allow you to see if any headers have been sent to the browser yet, if they have then you will need to use the JavaScript redirect like this:

location.href='http://www.talkincode.com';

You will want to redirect a user even if they have JavaScript turned off so you can also put in a noscript tag with a meta refresh tag. A meta refresh is a HTML tag that tells browsers to refresh the page, with the content tag being the amount of time to wait before the refresh. Adding the URL parameter into the content tells the browser to refresh to a different URL, essentially a redirect.

<meta http-equiv="refresh" content="0;URL=http://www.talkincode.com" />

Here is the full version.

$url = 'http://www.talkincode.com';
if(headers_sent()) {
 // redirect using JavaScript if it has, meta redirects if not
 echo '<script type="text/javascript">location.href=\''.$url.'\'</script><noscript><meta http-equiv="refresh" content="0;URL='.$url.'" /></noscript>';
}else{
 // otherwise use the php way.
 header('Location:'.$url);
 exit();
};

It is still possible for a user to stop any meta redirects, this should redirect 99% of users to another page if headers have already been sent, but your best bet is to use the header() function whenever possible.