Re: Warning: session_start()
| From: | Richard Quadling | Date: | Thu, 19 May 2011 15:18:44 +0000 |
| Subject: | Re: Warning: session_start() | ||
| References: | 1 2 3 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-312913@lists.php.net to get a copy of this message | ||
On 19 May 2011 16:05, Nazish <nazish@jhu.edu> wrote:
> Thanks for all your suggestions such as removing whitespace before the <?php
> tag and commenting issues. I made those changes.
>
> I didn't realize that connecting to the MySQL database involved sending a
> header: eg. mysql_connect($host, $user, $mysql_pass);
>
> Does this mean this mysql_connect statement should go before the <html> tag
> - even though mysql_connect is part of my conditional statement for logging
> in? (code is below)
>
> I primarily solved the header problem on my login page with a simple
> replacement.
>
> I used this line: echo '<script
>
> language="javascript">location.href="first_page.php"</script>';
>
> Instead of: header ("Location: first_page.php");
>
>
> And the page redirected :)
>
> However, I'm still experiencing issues with session_start() -- once the
> user's login password has been verified, the session begins and their
> session ID is saved as a variable -- this process takes place in the middle
> of the code, after the header. I can't put this right at the beginning of
> the code. In this case, from what I understand, I should use output
> buffering?
>
> Warning: session_start() [function.session-start]: Cannot send session cache
> limiter - headers already sent (output started at
> /home2/myparcoa/public_html/index.php:10) in
> /home2/myparcoa/public_html/includes/login_form.php on line 32
>
> Thanks again for the insights.
>
> On Wed, May 18, 2011 at 2:54 PM, Andre Polykanine <andre@oire.org> wrote:
>
>> Hello Nazish,
>>
>> Try to delete your HTML comments before the <?php starting tag. So
>> remove *anything* before <?php.
>>
>> --
>> With best regards from Ukraine,
>> Andre
>> Skype: Francophile
>> My blog: http://oire.org/menelion (mostly in Russian)
>> Twitter: http://twitter.com/m_elensule
>> Facebook: http://facebook.com/menelion
>>
>> ------------ Original message ------------
>> From: Nazish <nazish@jhu.edu>
>> To: php-general@lists.php.net
>> Date created: , 9:15:37 PM
>> Subject: [PHP] Warning: session_start()
>>
>>
>> Hi everyone,
>>
>> I recently uploaded my website files to a server. When I tried to log into
>> my website, I received these error messages:
>>
>> *Warning*: session_start()
>>
>> [function.session-start<http://www.myparcoasis.com/function.session-start
>> >]:
>> Cannot send session cookie - headers already sent by (output started at
>> /home2/myparcoa/public_html/index.php:10) in *
>> /home2/myparcoa/public_html/includes/login_form.php* on line *33*
>>
>> *Warning*: session_start()
>>
>> [function.session-start<http://www.myparcoasis.com/function.session-start
>> >]:
>> Cannot send session cache limiter - headers already sent (output started at
>> /home2/myparcoa/public_html/index.php:10) in *
>> /home2/myparcoa/public_html/includes/login_form.php* on line *33*
>>
>> *Warning*: Cannot modify header information - headers already sent by
>> (output started at /home2/myparcoa/public_html/index.php:10) in*
>> /home2/myparcoa/public_html/includes/login_form.php* on line *36*
>> *
>> *
>>
>> The website worked fine on the Apache localhost server (I could log in), so
>> I'm not sure what's wrong with the code which is creating the error on the
>> online server. Any ideas? I've highlighted the two error lines (31 & 34)..
>> I'd appreciate any insight! Thnx!
>>
>>
>> <!-----------------------------------------------------------------------
>> WHEN USER CLICKS 'ENTER' TO LOGIN
>> <!------------------------------------------------------------------------>
>> <?php
>>
>> $submit = ($_POST['submit']);
>>
>> if ($submit) // If user clicks the 'ENTER' button to login
>> {
>> // Connect to server and select database
>> include ("includes/mysql_connect.inc");
>> include ("includes/connect_res_directory.php");
>>
>> // define login variables
>> $login = mysql_real_escape_string($_POST['login']);
>> $password = mysql_real_escape_string($_POST['password']);
>>
>> $check_login = mysql_query("SELECT * FROM unit_info
>> WHERE login = '$login'
>> AND password = '$password'");
>>
>> $data = mysql_fetch_assoc($check_login);
>>
>> // Are all the fields filled?
>> if($login && $password)
>> {
>> // If fields are entered, verify username and password in mysql
>> database
>> if (mysql_num_rows($check_login)) // If the login and password
>> exists
>> {
>> //Login
>> * session_start();*
>> $_SESSION ['login'] = $data['login'];
>>
>> * header ("Location: index_test.php"); // webpage for correct
>> login*
>>
>> exit;
>> }
>> else
>> {
>> // Invalid username/password
>> echo "<div class='alert'>The username or password you
>> entered is
>> incorrect.</div>";
>> }
>> }
>> else
>> echo "<div class='alert'>Please enter all the
>> fields!</div>";
>>
>> }
>>
>> ?>
>>
>>
>
-------The next line is the first line of the file.
<?php
session_start();
?>
-----The previous line is the last line of the file.
Save the file as test.php
Run it.
Now remove the blank line and re-run it.
See?
--
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/iZdpBR