At 05:52 24.02.2003, Mr Percival said:
--------------------[snip]--------------------
>According to the PHP manual session_start always returns true.
>
>Ther are times (like when there is a disk full error on the server) that the
>sesison_start will fail because its unable to write the session tmp file.
>
>So shouldnt session_start be able to return false if the file write fails?
>
>Or does it return false but the manual doesnt say so?
--------------------[snip]--------------------
session_start() just prepares for session use:
- check for an existing session ID (cookie or request parameter
- if found, retrieve stored session data
- else generate new session key
- check garbage collection (gc_probability)
There's nothing that it does to prepare to write the session file, this is
done when your script exits.
BTW, having a look at the implementation in ext/session/session.c, the
function is declared returning void:
PHPAPI void php_session_start(TSRMLS_D)
The actual "return" value being stored in register AX (at least on Intel
platforms) it is most unlikely that ax contains a zero value. The last
statements at function end are:
if (PS(mod_data) && PS(gc_probability) > 0) {
int nrdels = -1;
nrand = (int) (100.0*php_combined_lcg(TSRMLS_C));
if (nrand < PS(gc_probability)) {
PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime), &nrdels TSRMLS_CC);
}
}
PS(mod_data): returns a pointer to internal data structures, not zero.
PS(gc_probability): usually 1.
nrand: seldom zero value.
Result: Will return false if (and only if) the garbage collector routine
(gc) returns false.
But anyway this has only academic value since php_session_start() is
declared to return void - this should be stated correctly in the manual IMHO.
--
>O Ernest E. Vogelsinger
(\) ICQ #13394035
^ http://www.vogelsinger.at/
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php