954,561 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Warning: session_start(): Cannot send session cache limiter - headers already sent

  <?php $_SESSION['admfname']= $_POST['fname']; $_SESSION['admlname']= $_POST['lname']; $_SESSION['admpassword']=$_POST['password']; if (($_SESSION['admfname'] == "peter") and ($_SESSION['admlname'] == "gewant") and ($_SESSION['admpassword'] == "approvalagent")) { //header("Location:admin_page.php"); echo ""; exit; } $f_name= $_POST['fname']; $l_name= $_POST['lname']; $pass= $_POST['password']; if($_POST['submit'] != "Login") { ?> Sign in with your
Account    First Name :   Last Name :   Password :     Forget Password New user click here online.jpg

<?php } elseif($f_name== "" or $l_name== "" or $pass== "") { ?> Sign in with your Account  Please fill all the fields   First Name :   Last Name :   Password :     Forget Password New user click here login1.jpg <?php } else { $query = "SELECT * from users WHERE firstname='$f_name' and lastname='$l_name' and password='$pass' "; $result = mysql_query($query); for ($i = 0; $i < mysql_num_rows($result); $i++) { $id = mysql_result($result, $i, "id"); $fname = mysql_result($result, $i, "firstname"); $lname = mysql_result($result, $i, "lastname"); $pas = mysql_result($result, $i, "password"); if (("$f_name" == "$fname") and ("$l_name" == "$lname") and ("$pass" == "$pas")) { $_SESSION['sfname'] = $f_name; $_SESSION['slname'] = $l_name; echo ""; exit; }//if loop }//for loop echo ""; //header("Location:new_user.php"); exit; } ?>

manish812
Newbie Poster
13 posts since Jun 2006
Reputation Points: 21
Solved Threads: 1
 

Headers already sent refers to HTTP Headers.
The server cannot send any more http headers if the HTTP Content has started sending.
In PHP code, this means you have ouput something to the page with echo or print etc.

PHP will not output any whitespace in between php tags, However, for anything outside php tags, (eg: html) whitespaces, linebreaks are sent as HTTP Content.
Sometimes this your editor may add whitespace also.

To prevent whitespace from being sent before you send all your headers, make sure the <?php is right at the top of the php script, and there are no lines or white space in between.

You can also use output buffering, ob_start() to buffer your PHP output before sending it to HTTP. Then use ob_flush() to send http output when you need.
see: http://www.php.net/manual/en/function.ob-start.php

I noticed you have //header("Location:admin_page.php"); in your page. You can use the output buffering to allow you to send this header even after you have echo and html output in your php.

digital-ether
Nearly a Posting Virtuoso
Moderator
1,293 posts since Sep 2005
Reputation Points: 461
Solved Threads: 101
 

You have blank lines in your HTML code, remove them and try again.

maiahost
Newbie Poster
13 posts since May 2006
Reputation Points: 10
Solved Threads: 1
 

Works fine for me. Attached is the code I copied and pasted, so you have at least a file that worked.

My test was done with EasyPHP, with the PHP version upgraded to 5.04.

Attachments someguyscode.php (4.97KB)
Puckdropper
Posting Pro
500 posts since Jul 2004
Reputation Points: 23
Solved Threads: 23
 

Pass the header before any HTML tags or else it would show errors

cancer10
Posting Whiz in Training
234 posts since Dec 2004
Reputation Points: 58
Solved Threads: 1
 

Use This Php Script at top of the your php page this script start session before dowload include file i hope you will solve this problem.
<?php
if (!isset($_SESSION)) {
session_start();
}
?>

neeraj93
Newbie Poster
1 post since Sep 2008
Reputation Points: 10
Solved Threads: 1
 

this error will occur at the times of:

1.any space is there before the session_start(); function..Means it sholu be the first line of your application...
2.dont use session_start(); as twice (in your main application and in your included application)

Shanti C
Posting Virtuoso
1,642 posts since Jul 2008
Reputation Points: 137
Solved Threads: 162
 

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/leadtwot/public_html/staging/contact_us.php:1) in /home/leadtwot/public_html/staging/contact_us.php on line 1

jeyakannanrd
Newbie Poster
3 posts since Aug 2009
Reputation Points: 10
Solved Threads: 1
 

hey dude
are you sure you dont use include code?
session code must be before include

tami64
Newbie Poster
7 posts since Jul 2009
Reputation Points: 10
Solved Threads: 1
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/leadtwot/public_html/staging/contact_us.php:1) in /home/leadtwot/public_html/staging/contact_us.php on line 1


I have this problem too. I tried everything without success.
After long research i found the reason and decision in this place .
I hope that's help you and save your time.

storm123
Newbie Poster
11 posts since May 2010
Reputation Points: 10
Solved Threads: 2
 

Headers already sent refers to HTTP Headers. The server cannot send any more http headers if the HTTP Content has started sending. In PHP code, this means you have ouput something to the page with echo or print etc.

PHP will not output any whitespace in between php tags, However, for anything outside php tags, (eg: html) whitespaces, linebreaks are sent as HTTP Content. Sometimes this your editor may add whitespace also.

To prevent whitespace from being sent before you send all your headers, make sure the <?php is right at the top of the php script, and there are no lines or white space in between.

You can also use output buffering, ob_start() to buffer your PHP output before sending it to HTTP. Then use ob_flush() to send http output when you need. see: http://www.php.net/manual/en/function.ob-start.php

I noticed you have //header("Location:admin_page.php"); in your page. You can use the output buffering to allow you to send this header even after you have echo and html output in your php.


Thank You for Solution.....

Ankit_Parmar
Light Poster
47 posts since Jul 2010
Reputation Points: 11
Solved Threads: 8
 
rajarajan07
Nearly a Posting Virtuoso
1,447 posts since May 2008
Reputation Points: 167
Solved Threads: 239
 

I had the same problem until went to my file manager and checked what was in my file on the server. there I found garbage added to the start of the file - in my case a dash was added:
sample.php
line 1:-<?php etc.
I get 3 extra chars on my Virtual server, and it happens with 3 ftp clients I have used so far. (I'm using Windows 7 OS).

martybabes
Newbie Poster
1 post since Jun 2010
Reputation Points: 10
Solved Threads: 1
 

thanks to solve my error

abhijits
Newbie Poster
2 posts since Nov 2010
Reputation Points: 10
Solved Threads: 1
 

please you continues your good work for other issue

abhijits
Newbie Poster
2 posts since Nov 2010
Reputation Points: 10
Solved Threads: 1
 

session_start() must be at the first line of the page.
Should not contain any spaces before it.

mahendra1
Newbie Poster
2 posts since Apr 2009
Reputation Points: 10
Solved Threads: 1
 

Thanks...a lot to all of u ...its help me a lot..
thanks once again..

aksahoo17
Newbie Poster
20 posts since Nov 2010
Reputation Points: 10
Solved Threads: 1
 

Yeah Thanxxx.. i done it. there are a single space in code..
after half hour strugle i had done. :-)

Manmohit Verma
Newbie Poster
1 post since Sep 2011
Reputation Points: 10
Solved Threads: 0
 

To solve this problem, you do the following:
Step 1: Download and install nodepad + + latest version.
Step 2: open the php file that you run corrupted by nodepad + +. select tab: encoding -> encoding in UTF-8 without BOM.
Then you run the program is ok.

xoso888.vn
Newbie Poster
1 post since Nov 2011
Reputation Points: 10
Solved Threads: 0
 

To fix the session_start() problem, change the line in your PHP config file for sessions and change it to maybe C:\PHP\PHPSession after having created the folder of course and restart your server and try checking your page again.

edensigauke
Light Poster
26 posts since Nov 2007
Reputation Points: 8
Solved Threads: 0
 

This question has already been solved

Post: Markdown Syntax: Formatting Help
You