开发者

Page Redirection problem in php

I want to redirect from login page to my main page using php. I use the following line of code: header('location:index.php'); inspite of redirection i received the error li开发者_Go百科ke:

Warning: Cannot modify header information -
headers already sent by (output started at C:\wamp\www\student\login.php:18)
in C:\wamp\www\student\login.php on line 19


This error occures if you print something before header() function.

For example:

<?php
echo 'test';
header('location:index.php');
exit;
?>

or even:

<html>
  <head> .....
<?php
echo 'test';
header('location:index.php');
exit;
?>

You have to move this piece of PHP code before any operation that gives you an output.

You can also do the following trick but it is the second way you should try:

<?php
echo 'test';
ob_start();
flush();
header('location:index.php');
exit;
?>


you need to turn on the output buffer by inserting

ob_start();

at first line of php code


If you have already "echo'd" or "print'd" anything onto the page, either inside your script or outside of any set of PHP tags, then you cannot send any headers anymore. This is what your error message is stating.

Also, you should (try) to use full paths in location tags, it's better for SEO to use full URLs for every link on your website, let alone the redirects.


make sure that the header function is called before any response is outputted, e.g. header() function must be called before any echo functions or print_r, try removing the spaces before the <?php opening tag.


Its very difficult to decide what constitutes output to a page. I tried to eliminate my problem by removing all "echo's", "prints" etc but couldnt make the redirection work. I think there was a problem with a returned sql query. Adding the buffer and flushing it cured the problem.


You need to find out whether the header was sent already sent by checking line by line with header_sent() it will return true or false. If it's already sent you can't use header(). Try meta http-equiv="refresh" content="0;URL='your url'" /.Don't forget to add open and closing tags.<>

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜