drrw8672 2011-08-02 15:09
浏览 42
已采纳

php session_start包含文件

i learned a lot about session start from my previous question. Now i'm wondering how session locking occurs when files are included in other files. Lets say i have:

page.php

include('header.php');
...some html content....
include('sub_page.php');
...more html....

header.php:

session_start();
..save session vars...
..print web page header...

sub_page.php

session_start();
...use session vars....
..print page content...

When i open page.php, does the session become unlocked as soon as header.php is done? or is it live for the whole page.php life, so sub_page's session is blocked? Is the session_start in sub_page necessary? Would it be better practice if I session_write_close every time i'm done with session data? (Though that would mean session_starting everytime i'd like to use a session variable).

  • 写回答

5条回答 默认 最新

  • douchunjing6587 2011-08-02 16:06
    关注
    1. You should start session only one time. In your example, just need session_start() at the first line of page.php
    2. session_start() will generate E_NOTICE if session was previously started. You can use @session_start() to ignore it.
    3. It also generates E_NOTICE if you use session_start() after you output HTML code.
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?