1--TEST-- 2Test session_set_save_handler() function : variation 3--INI-- 4session.use_strict_mode=1 5session.gc_probability=1 6session.gc_divisor=1 7session.gc_maxlifetime=0 8session.save_path= 9session.name=PHPSESSID 10session.save_handler=files 11--SKIPIF-- 12<?php include('skipif.inc'); ?> 13--FILE-- 14<?php 15 16ob_start(); 17 18/* 19 * Prototype : bool session_set_save_handler(callback $open, callback $close, callback $read, callback $write, callback $destroy, callback $gc) 20 * Description : Sets user-level session storage functions with validate_id() and update() 21 * Source code : ext/session/session.c 22 */ 23 24function noisy_gc($maxlifetime) { 25 echo("GC [".$maxlifetime."]\n"); 26 echo gc($maxlifetime)." deleted\n"; 27 return true; 28} 29 30echo "*** Testing session_set_save_handler() : variation ***\n"; 31 32require_once "save_handler.inc"; 33$path = __DIR__; 34var_dump(session_save_path($path)); 35 36echo "*** Without lazy_write ***\n"; 37var_dump(session_set_save_handler("open", "close", "read", "write", "destroy", "noisy_gc", "create_sid", "validate_sid", "update")); 38var_dump(session_start(['lazy_write'=>FALSE])); 39$session_id = session_id(); 40var_dump(session_id()); 41var_dump(session_write_close()); 42var_dump(session_id()); 43 44echo "*** With lazy_write ***\n"; 45var_dump(session_id($session_id)); 46var_dump(session_set_save_handler("open", "close", "read", "write", "destroy", "noisy_gc", "create_sid", "validate_sid", "update")); 47var_dump(session_start(['lazy_write'=>TRUE])); 48var_dump(session_commit()); 49var_dump(session_id()); 50 51echo "*** Cleanup ***\n"; 52var_dump(session_id($session_id)); 53var_dump(session_start()); 54var_dump(session_destroy()); 55 56ob_end_flush(); 57?> 58--EXPECTF-- 59*** Testing session_set_save_handler() : variation *** 60string(0) "" 61*** Without lazy_write *** 62bool(true) 63Open [%s,PHPSESSID] 64CreateID [PHPT-%d] 65Read [%s,PHPT-%d] 66GC [0] 671 deleted 68bool(true) 69string(%d) "PHPT-%d" 70Write [%s,PHPT-%d,] 71Close [%s,PHPSESSID] 72bool(true) 73string(%d) "PHPT-%d" 74*** With lazy_write *** 75string(%d) "PHPT-%d" 76bool(true) 77Open [%s,PHPSESSID] 78ValidateID [%s,PHPT-%d] 79Read [%s,PHPT-%d] 80GC [0] 811 deleted 82bool(true) 83Write [%s,PHPT-%d,] 84Close [%s,PHPSESSID] 85bool(true) 86string(%d) "PHPT-%d" 87*** Cleanup *** 88string(%d) "PHPT-%d" 89Open [%s,PHPSESSID] 90ValidateID [%s,PHPT-%d] 91Read [%s,PHPT-%d] 92GC [0] 931 deleted 94bool(true) 95Destroy [%s,PHPT-%d] 96 97Warning: unlink(%s): No such file or directory in %s on line %d 98Close [%s,PHPSESSID] 99bool(true) 100