Menu

session_start(): Cannot send session cookie -

Help
2004-04-27
2004-04-27
  • Isaac Rodriguez

    Isaac Rodriguez - 2004-04-27

    Hello,
    Excuses by my english is very poor.
    This is my first installation of PSA, and I'm newbie in PHP.
    The problem is related about session_start(), when I refer a page include in the structure managed for PSA for example pr.php,
    If I logged into, although the page content is displayed, the server return a error refer about a session cookie
    (I read a Justin comentary and I put $_SERVER['REQUEST_URI']  and $_SERVER['PHP_SELF'] in the _restrict.php this is the output):

    ---------  Browser Output ----------------------

    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /ssra2/phpsecurityadmin/pr.php:1) in /ssra2/phpsecurityadmin/include/config.php on line 78

    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /ssra2/phpsecurityadmin/pr.php:1) in /ssra2/phpsecurityadmin/include/config.php on line 78

    _SERVER['REQUEST_URI'] @ location 1 = /ssra2/pr.php
    _SERVER['PHP_SELF'] @ location 1 = /ssra2/pr.php
    PSA_test @ location 1 = 1
    /ssra2/pr.php/ssra2/pr.php

    Example Page!

    --------- END Browser Output ----------------------

    I have checked problems with the permissions in the temporal directory, is nothing related... and the strange thing is that I am using squirrelmail which used session, I view a lot of problems about that, but none refer about PSA, I am confused :-(

    Theses are my entrances about session in  php.ini:

    [Session]
    ; Handler used to store/retrieve data.
    session.save_handler = files

    ; Argument passed to save_handler.  In the case of files, this is the path
    ; where data files are stored. Note: Windows users have to change this
    ; variable in order to use PHP's session functions.
    ; As of PHP 4.0.1, you can define the path as:
    ;     session.save_path = "N;/path"
    ; where N is an integer.  Instead of storing all the session files in
    ; /path, what this will do is use subdirectories N-levels deep, and
    ; store the session data in those directories.  This is useful if you
    ; or your OS have problems with lots of files in one directory, and is
    ; a more efficient layout for servers that handle lots of sessions.
    ; NOTE 1: PHP will not create this directory structure automatically.
    ;         You can use the script in the ext/session dir for that purpose.
    ; NOTE 2: See the section on garbage collection below if you choose to
    ;         use subdirectories for session storage
    session.save_path = /tmp

    ; Whether to use cookies.
    session.use_cookies = 1

    ; This option enables administrators to make their users invulnerable to
    ; attacks which involve passing session ids in URLs; defaults to 0.
    ; session.use_only_cookies = 1

    ; Name of the session (used as cookie name).
    session.name = PHPSESSID

    ; Initialize session on request startup.
    session.auto_start = 0

    ; Lifetime in seconds of cookie or, if 0, until browser is restarted.
    session.cookie_lifetime = 0

    ; The path for which the cookie is valid.
    session.cookie_path = /

    ; The domain for which the cookie is valid.
    session.cookie_domain =

    ; Handler used to serialize data.  php is the standard serializer of PHP.
    session.serialize_handler = php

    ; Define the probability that the 'garbage collection' process is started
    ; on every session initialization.
    ; The probability is calculated by using gc_probability/gc_divisor,
    ; e.g. 1/100 means there is a 1% chance that the GC process starts
    ; on each request.

    session.gc_probability = 1
    session.gc_divisor     = 100

    ; After this number of seconds, stored data will be seen as 'garbage' and
    ; cleaned up by the garbage collection process.
    session.gc_maxlifetime = 1440

    ; NOTE: If you are using the subdirectory option for storing session files
    ;       (see session.save_path above), then garbage collection does *not*
    ;       happen automatically.  You will need to do your own garbage
    ;       collection through a shell script, cron entry, or some other method.
    ;       For example, the following script would is the equivalent of
    ;       setting session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes):
    ;          cd /path/to/sessions; find -cmin +24 | xargs rm

    ; PHP 4.2 and less have an undocumented feature/bug that allows you to
    ; to initialize a session variable in the global scope, albeit register_globals
    ; is disabled.  PHP 4.3 and later will warn you, if this feature is used.
    ; You can disable the feature and the warning seperately. At this time,
    ; the warning is only displayed, if bug_compat_42 is enabled.

    session.bug_compat_42 = 1
    session.bug_compat_warn = 1

    ; Check HTTP Referer to invalidate externally stored URLs containing ids.
    ; HTTP_REFERER has to contain this substring for the session to be
    ; considered as valid.
    session.referer_check =

    ; How many bytes to read from the file.
    session.entropy_length = 0

    ; Specified here to create the session id.
    session.entropy_file =

    ;session.entropy_length = 16

    ;session.entropy_file = /dev/urandom

    ; Set to {nocache,private,public,} to determine HTTP caching aspects
    ; or leave this empty to avoid sending anti-caching headers.
    session.cache_limiter = nocache

    ; Document expires after n minutes.
    session.cache_expire = 180

    ; trans sid support is disabled by default.
    ; Use of trans sid may risk your users security.
    ; Use this option with caution.
    ; - User may send URL contains active session ID
    ;   to other person via. email/irc/etc.
    ; - URL that contains active session ID may be stored
    ;   in publically accessible computer.
    ; - User may access your site with the same session ID
    ;   always using URL stored in browser's history or bookmarks.
    session.use_trans_sid = 1

    ; The URL rewriter will look for URLs in a defined set of HTML tags.
    ; form/fieldset are special; if you include them here, the rewriter will
    ; add a hidden <input> field with the info which is otherwise appended
    ; to URLs.  If you want XHTML conformity, remove the form entry.
    ; Note that all valid entries require a "=", even if no value follows.
    url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset="

    I appreciated any help, THANK YOU!

    |saac- :-)

     
    • Justin Koivisto

      Justin Koivisto - 2004-04-27

      This sounds like the file "/ssra2/phpsecurityadmin/pr.php" has whitespace before the opening php tag. Be usre that <?php is at line 1, column 1 and that there is no HTML output before you include _restrict.php

       
    • Isaac Rodriguez

      Isaac Rodriguez - 2004-04-27

      OH, Right!
      Justin I cannot believe it... a stupid error!, you've saved me a lot of work,

      THANKS.!!!

      greetings from Uruguay!

       

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.