Hello All,

I have a page that passes a session variable to another page which is then used in an if/else statement. For some reason itsa giving me error messages, and I'm not sure whats up with it.

Heres the page that creates the variable

<?php

session_start(); // start session

$_SESSION['name'] = 'sport';

?>

and heres the page with the if else statment :

<?php

session_start();

$_SESSION;

//$name = 'Jester';

if ( $name == 'sport' ) { ?>

<table>stuff in here</table>

<? } else { ?>

<table>stuff in here</table>

<? } ?>

and finally - here are the error messages that I am getting :

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at c:\wamp\www\work\hebbingo\site\test.php:11) in c:\wamp\www\work\hebbingo\site\test.php on line 13

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at c:\wamp\www\work\hebbingo\site\test.php:11) in c:\wamp\www\work\hebbingo\site\test.php on line 13

As you've guessed, I'm pretty new to this so I have probably missed something basic - any ideas?

Cheers

Fogo

Recommended Answers

All 7 Replies

Hello All,

I have a page that passes a session variable to another page which is then used in an if/else statement. For some reason itsa giving me error messages, and I'm not sure whats up with it.

Heres the page that creates the variable

<?php

session_start(); // start session

$_SESSION['name'] = 'sport';

?>

and heres the page with the if else statment :

and finally - here are the error messages that I am getting :

As you've guessed, I'm pretty new to this so I have probably missed something basic - any ideas?

Cheers

Fogo

One of two things are happening.. but to correct the error you can:

output_buffering = Off

Toggle this to produce the error.

Most liekly you are using an include to like header.php" that is outputing the session data already.

You cannot resend the header infomation once it has been sent already.

One of two things are happening.. but to correct the error you can:

output_buffering = Off

Toggle this to produce the error.

Most liekly you are using an include to like header.php" that is outputing the session data already.

You cannot resend the header infomation once it has been sent already.

cool - tha nks

check if there is any echo to the browser. also check if there are any whitespace b4 session_start() function.

/* Wrong
<?

session_start();
?>
*/

/*

/* correct way
<?php
session_start();
?>
*/

regards

You cannot output any text to the user and then try and do a header() call in PHP. If you do, you will get a headers already sent error.

Hope that helps :)

HI ALL
I am beginner in php. I have same problem like Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\wamp\www\php\authentication\register_new.php:1) in C:\wamp\www\php\authentication\register_new.php on line 9
. Will you please help me in this stage?

Thanks and Regards
Vigin Kurakar

you must put your session start or your header() function above all the html tags.otherwise,it will have an error like that..

Here is the code.

<?php
$email = $_POST;
$username = $_POST;
$passwd = $_POST;
$passwd2 = $_POST;
require_once('example.php');
session_start();
{
try
{
if (!filled_out($_POST))
{
throw new Exception ('You have not filled the form correctely');
}
if (!valid_email($email))
{
throw new Exception ('That is not valid email address');
}
if ($passwd != $passwd2)
{
throw new Exception ('The passwords which you entered is not match');
}
if (strlen($passwd)<6)
{
throw new Exception ('Your password must be atleast 6 characters');
}
if (strlen($username)>16)
{
throw new Exception ('Your username must be less than 16 characters');
}
register($username, $email, $passwd);
$_SESSION = $username;


do_html_header("Registration Succssesful");
echo "Your registration was succseesful.Go to members area";
do_html_url('welcome.php', 'Go to that page');


do_html_footer();
}
catch (Exception $e)
{
do_html_header("Problem:");
echo $e -> getMessage();
do_html_footer();
exit;
}
}
?>

Please adivce me what i can do in this.

Thanks and Regards
Vigin Kurakar

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.