1--TEST-- 2SQLite3 open_basedir checks 3--SKIPIF-- 4<?php require_once(dirname(__FILE__) . '/skipif.inc'); ?> 5--INI-- 6open_basedir=. 7--FILE-- 8<?php 9chdir(__DIR__); 10 11$directory = dirname(__FILE__) . '/'; 12$file = uniqid() . '.db'; 13 14echo "Within test directory\n"; 15$db = new SQLite3($directory . $file); 16var_dump($db); 17var_dump($db->close()); 18unlink($directory . $file); 19 20echo "Above test directory\n"; 21try { 22 $db = new SQLite3('../bad' . $file); 23} catch (Exception $e) { 24 echo $e . "\n"; 25} 26 27echo "Done\n"; 28?> 29--EXPECTF-- 30Within test directory 31object(SQLite3)#%d (0) { 32} 33bool(true) 34Above test directory 35 36Warning: SQLite3::__construct(): open_basedir restriction in effect. File(%s) is not within the allowed path(s): (.) in %ssqlite3_21_security.php on line %d 37exception 'Exception' with message 'open_basedir prohibits opening %s' in %ssqlite3_21_security.php:%d 38Stack trace: 39#0 %ssqlite3_21_security.php(%d): SQLite3->__construct('%s') 40#1 {main} 41Done 42