1--TEST-- 2Test session_name() function : error functionality 3--INI-- 4session.save_path= 5session.name=PHPSESSID 6--SKIPIF-- 7<?php include('skipif.inc'); ?> 8--FILE-- 9<?php 10 11ob_start(); 12 13/* 14 * Prototype : string session_name([string $name]) 15 * Description : Get and/or set the current session name 16 * Source code : ext/session/session.c 17 */ 18 19echo "*** Testing session_name() : error functionality ***\n"; 20 21// Get an unset variable 22$unset_var = 10; 23unset($unset_var); 24 25class classA 26{ 27 public function __toString() { 28 return "Hello World!"; 29 } 30} 31 32$heredoc = <<<EOT 33Hello World! 34EOT; 35 36$fp = fopen(__FILE__, "r"); 37 38// Unexpected values to be passed as arguments 39$inputs = array( 40 41 // Integer data 42/*1*/ 0, 43 1, 44 12345, 45 -2345, 46 47 // Float data 48/*5*/ 10.5, 49 -10.5, 50 12.3456789000e10, 51 12.3456789000E-10, 52 .5, 53 54 // Null data 55/*10*/ NULL, 56 null, 57 58 // Boolean data 59/*12*/ true, 60 false, 61 TRUE, 62 FALSE, 63 64 // Empty strings 65/*16*/ "", 66 '', 67 68 // Invalid string data 69/*18*/ "Nothing", 70 'Nothing', 71 $heredoc, 72 73 // Object data 74/*21*/ new classA(), 75 76 // Undefined data 77/*22*/ @$undefined_var, 78 79 // Unset data 80/*23*/ @$unset_var, 81 82 // Resource variable 83/*24*/ $fp 84); 85 86$iterator = 1; 87foreach($inputs as $input) { 88 echo "\n-- Iteration $iterator --\n"; 89 var_dump($input, session_name($input)); 90 $iterator++; 91}; 92 93fclose($fp); 94echo "Done"; 95ob_end_flush(); 96?> 97--EXPECTF-- 98*** Testing session_name() : error functionality *** 99 100-- Iteration 1 -- 101 102Warning: session_name(): session.name cannot be a numeric or empty '0' in %s on line %d 103int(0) 104string(9) "PHPSESSID" 105 106-- Iteration 2 -- 107 108Warning: session_name(): session.name cannot be a numeric or empty '1' in %s on line %d 109int(1) 110string(9) "PHPSESSID" 111 112-- Iteration 3 -- 113 114Warning: session_name(): session.name cannot be a numeric or empty '12345' in %s on line %d 115int(12345) 116string(9) "PHPSESSID" 117 118-- Iteration 4 -- 119 120Warning: session_name(): session.name cannot be a numeric or empty '-2345' in %s on line %d 121int(-2345) 122string(9) "PHPSESSID" 123 124-- Iteration 5 -- 125 126Warning: session_name(): session.name cannot be a numeric or empty '10.5' in %s on line %d 127float(10.5) 128string(9) "PHPSESSID" 129 130-- Iteration 6 -- 131 132Warning: session_name(): session.name cannot be a numeric or empty '-10.5' in %s on line %d 133float(-10.5) 134string(9) "PHPSESSID" 135 136-- Iteration 7 -- 137 138Warning: session_name(): session.name cannot be a numeric or empty '123456789000' in %s on line %d 139float(123456789000) 140string(9) "PHPSESSID" 141 142-- Iteration 8 -- 143 144Warning: session_name(): session.name cannot be a numeric or empty '1.23456789E-9' in %s on line %d 145float(1.23456789E-9) 146string(9) "PHPSESSID" 147 148-- Iteration 9 -- 149 150Warning: session_name(): session.name cannot be a numeric or empty '0.5' in %s on line %d 151float(0.5) 152string(9) "PHPSESSID" 153 154-- Iteration 10 -- 155 156Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 157NULL 158string(9) "PHPSESSID" 159 160-- Iteration 11 -- 161 162Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 163NULL 164string(9) "PHPSESSID" 165 166-- Iteration 12 -- 167 168Warning: session_name(): session.name cannot be a numeric or empty '1' in %s on line %d 169bool(true) 170string(9) "PHPSESSID" 171 172-- Iteration 13 -- 173 174Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 175bool(false) 176string(9) "PHPSESSID" 177 178-- Iteration 14 -- 179 180Warning: session_name(): session.name cannot be a numeric or empty '1' in %s on line %d 181bool(true) 182string(9) "PHPSESSID" 183 184-- Iteration 15 -- 185 186Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 187bool(false) 188string(9) "PHPSESSID" 189 190-- Iteration 16 -- 191 192Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 193string(0) "" 194string(9) "PHPSESSID" 195 196-- Iteration 17 -- 197 198Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 199string(0) "" 200string(9) "PHPSESSID" 201 202-- Iteration 18 -- 203string(7) "Nothing" 204string(9) "PHPSESSID" 205 206-- Iteration 19 -- 207string(7) "Nothing" 208string(7) "Nothing" 209 210-- Iteration 20 -- 211string(12) "Hello World!" 212string(7) "Nothing" 213 214-- Iteration 21 -- 215object(classA)#1 (0) { 216} 217string(12) "Hello World!" 218 219-- Iteration 22 -- 220 221Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 222NULL 223string(12) "Hello World!" 224 225-- Iteration 23 -- 226 227Warning: session_name(): session.name cannot be a numeric or empty '' in %s on line %d 228NULL 229string(12) "Hello World!" 230 231-- Iteration 24 -- 232 233Warning: session_name() expects parameter 1 to be string, resource given in %s on line %d 234resource(5) of type (stream) 235NULL 236Done