COOKIES and "Cannot modify header information"? [duplicate] - php

This question already has answers here:
Closed 11 years ago.
Possible Duplicate:
Warning: Cannot modify header information. Can't find error
a tough question. :)
I have a php script that upon a form submit verifies username and password against a DB and, if they're OK,
setcookie("call_admin_uin", $login , $expire);
setcookie("call_admin_pass", $password , $expire);
There is NO html before that. Nothing is echo-ed out and it works fine on my localhost and on one other server. Yet, when I upload it to my main server it gives out this:
Warning: Cannot modify header information - headers already sent by (output started at /home7/pnstatsc/public_html/admin/index.php:6) in /home7/pnstatsc/public_html/admin/index.php on line 72
Warning: Cannot modify header information - headers already sent by (output started at /home7/pnstatsc/public_html/admin/index.php:6) in /home7/pnstatsc/public_html/admin/index.php on line 73
So I guess there could be something wrong with the server setting... any idea what it might be?
Thanks!

You probably have some whitespace before an opening <?php somewhere. First, I would see what the output of headers_list() is -- that will tell you which headers have been sent, then I would go through and see what headers_sent($filename) and, if necessary, headers_sent($filename, $line_number).
If you're desperate, then you can always use ob_start and buffer your output, but that is overkill.

There must have been some output.
You can use headers_sent to track down the file and line where headers have been sent.

Related

Why a free hosting doesn't allow creating cookies? [duplicate]

This question already has answers here:
Warning: Cannot modify header information - headers already sent [duplicate]
(4 answers)
Closed 7 years ago.
This is my code:
<?php
$value = 'something from somewhere';
setcookie("TestCookie", $value);
?>
I am getting the error message as follows:
Warning: Cannot modify header information - headers already sent by
(output started at /home/nairsoft/public_html/page1.php:2) in
/home/nairsoft/public_html/page1.php on line 4
I am using a free webhosting server.
The headers are sent at the beginning of a request before the body of the server's response. It looks like your code already sent the headers so you can't modify them. As Afaan suggested, make sure you don't ouput anything before the opening php tag.
In general, it is a good idea to process everything you need at the beginning of the request before sending any of the response.
The above problem is solved by saving my code in ANSI instead of UTF-8
Cookie is a part of headers and headers must be sent before any actual output to the browser. Make sure that you set your cookies and other headers before you output anything. It has nothing whatsoever to do with what type of hosting package you have.

Having trouble with php code to redirect [duplicate]

This question already has answers here:
How to fix "Headers already sent" error in PHP
(11 answers)
Closed 8 years ago.
I am a beginner in php..
I need to redirect from one php file to another php file..
I used this code for this.
header("Location: stu_rep.html");
but it shows this error..
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\auttvl\admin\stu_rep_view.php:241) in C:\xampp\htdocs\auttvl\admin\stu_rep_view.php on line 492
I need to know what is wrong,Is there any other way to redirect without using header?
Thanks!
Header(); sends a HTTP header. But HTTP headers can only be sent before anything else. In your case, you are probably printing something out before using header();. Remove the printings and your done.
More informations here:
http://www.php.net/manual/de/function.header.php
Headers must be sent before any output is generated on the website. To "work around" this, you can add ob_start(); to the top of your file.

Header location issue, how to solve it? [duplicate]

This question already has answers here:
How to fix "Headers already sent" error in PHP
(11 answers)
Closed 9 years ago.
I created a web site, with php and SQL using WampServer.
And after a condition or in boucle I use Header location to transfer the user to another page. But I got an error from the server, I think is because I use the header after a code and not in . I deleted all blank spaces.
if($passfinal['contrasena']==$_POST['password'])
{
$_SESSION['logedin']=TRUE;
$_SESSION['userid']=$passfinal['id'];
header('Location: ../index.php');
}
Do you have something to help me?
Thnak you.
I think, here is problem $_POST['password'], because before you make compare, first you must check if(isset($_POST['password'])), blank spaces isn't important in this case and last one: I advise you, that you must write full url in header function, like this: header('location: http://example.com/index.php'), because this is more nice and true way.
Warning: Cannot modify header information - headers already sent by (output started at /home/sirobdco/public_html/login/login.php:11) in /home/sirobdco/public_html/login/includes/loginform/loginform.php on line 37
You already sent headers so PHP cannot send them again!
That is, before your code
header('Location: ../index.php');
You already send headers - blank space in html, an echo in PHP, etc.
Have a read through this:
http://php.net/manual/en/function.header.php
Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

How I can remove this error from my website? [duplicate]

This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Headers already sent by PHP
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/eitlabs1/public_html/salmanoreen.com/index.php:1) in /home/eitlabs1/public_html/salmanoreen.com/libraries/joomla/session/session.php on line 423
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/eitlabs1/public_html/salmanoreen.com/index.php:1) in /home/eitlabs1/public_html/salmanoreen.com/libraries/joomla/session/session.php on line 423
Warning: Cannot modify header information - headers already sent by (output started at /home/eitlabs1/public_html/salmanoreen.com/index.php:1) in
There are something that can cause this problem when you have session in your codes:
Having a white space before <?php
Having something before session_start() in your HTML codes.
Your PHP file has saved with BOM supporting option. Remove BOM from your file.
It's caused by text written to the web page before the call to session_start(). You can't have any text - even a carriage return - before the session_start() function call.
the error is triggered because you output something before the session_start() call. session_start should always be placed before any output or else it will produce an error like yours.
you are probably doing something like this:
<?php echo "test";
session_start();
?>
it should be
<?php session_start();
echo "test";
?>
There is also a possibility you have edited a file through ftp and a "invisible" character was added at the start of the file (boom operator).
This is not necessarily a session problem. This is usually the result of a different error message that is being sent to the web browser. As soon as any text is to be sent, php sends headers beforehand. After the text is sent, the session cannot be started because this also requires sending headers, but headers have to be sent all in one go before any other output. This means you must find the original error first.

Inserting PHP script using include(''); causes headers already sent error [duplicate]

This question already has answers here:
How to fix "Headers already sent" error in PHP
(11 answers)
Closed 9 years ago.
I am trying to insert a form script into my home page index.php by using the following line of code.
<?php include('email-system/index.php'); ?>
and continue to get the two error messages below. The form shows up, but I get this error below quite often when trying to insert script into my home page using the include statement. I have read in a number of different places that it could be white space. Since the file works fine if you go to www.mysite.com/email-system/index.php I'm assuming that it's not white space. Any ideas on what my problem is and how I could insert the code and correct the errors? Thank you in advance.
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /home/content/84/8661784/html/header.php:7) in /home/content/84/8661784/html/email-system/index.php on line 6
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/content/84/8661784/html/header.php:7) in /home/content/84/8661784/html/email-system/index.php on line 6
You will only get that if you are echoing output before the include statement.
Make sure whatever you need is included / loaded before you send output to the user.

Categories