session_start() error

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • y_oda2002

    session_start() error

    I keep getting an error that says this

    Warning: session_start() : Cannot send session cache limiter - header
    already sent (output started at c:\program files\easyphp1-8\www\th
    site\adminlogin .php:3) in c:\program files\easyphp1-8\www\th
    site\access.inc .php on line

    Does anyone know what it means? I am trying to create a account logi
    and that warning comes up... Nothing bad happens. If anything doe
    anyone know how to suppress php from showing the warning? though I'
    rather figure out how to fix i

    Thanks

    Nic
    http://eye.cc -php- web design
  • Berislav Lopac

    #2
    Re: session_start() error

    y_oda2002 wrote:[color=blue]
    > I keep getting an error that says this:
    >
    > Warning: session_start() : Cannot send session cache limiter - headers
    > already sent (output started at c:\program files\easyphp1-8\www\the
    > site\adminlogin .php:3) in c:\program files\easyphp1-8\www\the
    > site\access.inc .php on line 5
    >
    > Does anyone know what it means?[/color]

    You have to put session_start *before* any other output from the script, ie.
    before any echo, print or similar.

    Berislav


    Comment

    • Andy Hassall

      #3
      Re: session_start() error

      On Sat, 30 Apr 2005 09:01:10 GMT, nrhodes@thiel-dot-edu.no-spam.invalid
      (y_oda2002) wrote:
      [color=blue]
      >I keep getting an error that says this:
      >
      >Warning: session_start() : Cannot send session cache limiter - headers
      >already sent (output started at c:\program files\easyphp1-8\www\the
      >site\adminlogi n.php:3)[/color]

      OK, what's in adminlog.php line 3?
      [color=blue]
      >in c:\program files\easyphp1-8\www\thesite\a ccess.inc.php on line 5
      >
      >Does anyone know what it means?[/color]

      It means you're trying to start a session, so PHP is trying to send a cookie
      and a cache limiter header, but you've already output some content - HTTP
      headers can only be sent before any other content.
      [color=blue]
      >I am trying to create a account login
      >and that warning comes up... Nothing bad happens. If anything does
      >anyone know how to suppress php from showing the warning?[/color]

      Don't suppress this - it's actually a bit more serious than just a warning as
      it'll be screwing up your sessions.
      [color=blue]
      >though I'd rather figure out how to fix it[/color]

      Yep, much better.

      --
      Andy Hassall / <andy@andyh.co. uk> / <http://www.andyh.co.uk >
      <http://www.andyhsoftwa re.co.uk/space> Space: disk usage analysis tool

      Comment

      • y_oda2002

        #4
        re:session_star t() error

        Thanks for trying to help...

        However I still can't figure out the problem....

        I keep getting the same error...

        Here is what I am doing...

        I have some structured code... include files....
        I am trying to create a user login where each page knows the user is
        or isnt logged in....
        However whenever I refrence the file with this code (always included
        at the beginning of the file)...

        session_start() ;

        function loggedIn()
        {
        return isset($_SESSION['authorized']);
        }

        It throws that error....
        Should I only use session_start() once when the user enters the main
        page?
        It seems that the first page to start the session is fine and
        continues to be fine evening when going to it from a page with the
        error....
        Does anyone know of anything on the web about sessions that would be
        able to help me?

        Thanks again for your time..
        It's greatly appreciated....

        Nick
        http://eye.cc -php- web design

        Comment

        • Mick Sharpe

          #5
          Re: re:session_star t() error

          This may be a bug in PHP. I found that session_start() does not work if
          called from inside a function - you have to call it from top-level code.
          Also, you need to call it before you do anything else. HTH :-)


          Comment

          • Angelos

            #6
            Re: re:session_star t() error


            "Mick Sharpe" <mick.sharpe@bt internet.com> wrote in message
            news:d6pj7i$457 $1@nwrdmz01.dmz .ncs.ea.ibs-infra.bt.com...[color=blue]
            > This may be a bug in PHP. I found that session_start() does not work if
            > called from inside a function - you have to call it from top-level code.
            > Also, you need to call it before you do anything else. HTH :-)[/color]

            I don't think so... I can start a session later in my code inside a switch
            case: statement for example...
            You might be wrong


            Comment

            • Philip  Olson

              #7
              Re: session_start() error

              That is unrelated, a switch does not give output. echo 'foo'; is
              output. if () is not. Regarding the inability to use session_start()
              inside a user defined function, I don't see why this would be a
              problem. I'm guessing it was something else.

              The key here is output. Headers already sent = output already sent. If
              your include file (access.inc.php ) has a space after the closing ?>
              (line 5ish), that is output. I'm guessing this is the case. It's common
              to leave off the closing ?> within include files as to eliminate this
              potential problem.

              Comment

              • Mick Sharpe

                #8
                Re: session_start() error

                That would explain nicely the problems I experienced - thanks for that :-)


                Comment

                Working...