; t& L% [1 t0 B' oA.1440秒后 + n2 p0 c+ Y' J0 ]. BB.在session.gc_maxlifetime设置的时间过了后 1 L5 v5 f) B8 h% K: t3 P- @C.除非手动删除,否则永不过期3 k) L! o. M( {+ m! `) a0 v9 K. I
D.除非浏览器重启,否则永不过期. u l8 e9 f! l
E.以上都不对 7 ^7 T7 t* \! V/ I: p9 M$ n% l9 L" P0 r8 V, }0 W; x3 t3 ?
x' f+ Q- @! C( W; O" s* G
15.哪个函数能把换行转换成HTML标签<br />? ' c! ], e- M1 ]: s9 S [* ~& B- T2 d & w M/ S2 |0 Y" s; E" X3 h) T% k! e答案:____________ ; l: Y1 G6 w. f. v # s( i" b6 [# }) K; j: Y/ W: S& u
! ]8 u/ X, A! a8 N5 ?
答案速查) ], e" N2 \! {. ^8 u& P
1:E 4 ~2 T: }7 j. i$ Y2:setcookie/setrawcookie; o( @1 d1 l/ |3 t
3:B % ]8 l3 @) p E9 T3 ~+ E7 T4:BD- x( q2 a( O A6 N/ {' x" l/ P5 w
5:BD! D" M1 R1 x1 o2 }
6:D ! q7 C$ {) \2 `5 P9 }+ o7:A - s5 M; \5 i0 i$ W2 M9 j8:B 5 \! G" t" U0 J% l% ^9:C5 N# }4 C" c- ~
10:B 6 q- w V E B7 I: A! N) _1 l8 ?11:E: l; t( h- W# N. R
12:A ( I% _& n+ \3 ~0 T4 H13:BD / E3 v; B) h" w4 l4 T" y5 [14:B 0 E* I! J1 X; I- N5 p15:nl2br 2 ]- m' w2 `! r; W/ z' ? . s, D0 z/ w- l" k9 q$ q6 R9 k0 K4 [$ g+ H# T1 Z x5 _. b1 u4 o
2 E. c; I: e5 M L- ~' a
答案详解 3 d8 M6 o; D: z( {* N, y3 {3 j0 v( R7 \3 f9 |
1.尽管在register_globals被设置为on时,可以通过全局变量来访问session,但在较新版本的PHP中,为了避免造成安全隐患,php.ini文件已经把register_globals设置为off了。因此答案是E。6 q. M! g: D" w& w! D
/ t1 ~7 `# M- {( s1 \2 l) o6 o; g
2.虽然header函数在这里也能用,但这题显然是在说setcookie或setrawcookie函数。 . {, T( `! n$ y% G ( R: P) V# N- d' n3.答案是B。浏览器不允许来自某个域名的HTTP事务更改另一个域名下的cookie,否则这将造成严重的的安全问题。) z7 }1 ~) N" X; j# g
2 Y' d5 o t6 K: J4.既然表单采用post方式传输,那么脚本将只可能从$_POST和$_REQUEST两个超级全局变量数组中取到值。元素名称(email)是键名,因此答案是B和D。注意,由于可能导致潜在的安全问题,这里不鼓励使用$_REQUEST。7 h& O/ y9 p6 L ]1 L
, `3 {& l1 Z9 g6 e: o5.本题考验你对HTML编码的认识以及代码查错能力。变量$s在被函数htmlentities()处理过后,结果返回给了变量$ss,而$s自己并没有被改变。因此答案是B和D。你可能觉得自己被戏弄了,但是记住,发现这样的小错误是捉虫能力中很重要的一部分。2 \3 F6 A6 S p! g, H! r
, ?& c. h o$ v+ Z( l
6.如果没有设置过期时间,cookie将在用户会话结束时自动过期。cookie不需要服务器端会话的支持,因此答案是D。, h A7 p; Z8 f; g4 j
E! |- q; P2 N0 b6 c0 v5 F
7.表单使用post方式传输,所以无论在文本框中输入什么,其值都会传给$_POST超级全局变量,这里的$_GET数组没有值。答案是A。0 h# z6 [- E8 q: [9 F8 j
+ p& q0 W2 Z' E# B+ o4 G
8.HTTPS传输发生时,浏览器与服务端立刻完成加密机制的握手,之后的数据都是加密传输而不是明文传输——包括URL,查询字串。而在HTTP传输中,它们都是明文传输的,因此答案是B。 2 \0 X, P+ O& J & a0 S+ t8 i/ e6 S% y" |9.对于收到的查询字串和POST信息,PHP只是简单的把元素添加进对应的超级变量数组中。结果就是如果有两个元素同名,前一个会被后一个覆盖。答案是C。 0 x- I+ U T( Y j0 n( ]; r ; n! x5 P% ~, c" X; ]10.只有B永远正确。虽然你可以用implode函数把数组转化成字符串,然后存在数组里,但却无法保证日后一定能用serialize()把这个字符串还原成数组。浏览器对单个cookie有容量限制,因此在cookie里存储数组不是个好主意。但事情也并非永远是这样,你仍然可以存储一些比较小的数组。. B, k( B: G% ?
" A) W) x0 w6 c% C2 _
11.这又是一个考验debug能力的题。注意到了吗,在脚本的末尾,echo语句中的$output变量拼错了!脚本不会输出任何东西,答案是E。 4 _6 X, {7 ^0 u- }8 W1 x4 `* d% {% _2 u/ H+ |3 n) g7 S
12.答案是文件系统(A)。默认情况下,PHP把所有会话信息存储在/tmp文件夹中;在没有这个文件夹的操作系统中(比如Windows),必须在php.ini中给session.save_path设置一个合适的位置(如c:\Temp)。' L c( R& ~1 e f4 j0 M1 V. I
p7 w# V | B1 v6 J2 Q13.B和D是最有可能出问题并应该深入调查的地方。由于浏览器访问其他网站都正常,所以不可能是浏览器程序出了问题。杀毒软件通常不会选择性的只阻止安全的cookie(不过有可能会阻止所有的cookie)。你首先应当检查浏览器是否被设置为阻止所有cookie,这是最有可能导致该问题的原因。同时,错误的时区设置也可能是根源——给cookie设置有效期时用得是GMT时间。可能会出现cookie在写入时就立刻过期,从而无法被脚本接收的情况。, H: J6 v4 y* E" T# f/ @" | B
: y3 y. W0 _# r* a' t" U6 x7 T14.session.gc_maxlifetime设置的是用户最后一次请求到session被回收之间的时间间隔。尽管数据文件并没有被真正删除,不过一旦session被回收,你将无法对此session进行访问。巧合的是,session.gc_maxlifetime的默认设置正好是1440秒,但这个数字是可以被系统管理员调整的。所以答案应该是B。; M; `: M; i4 r4 T0 A
. `" b$ {# A8 H0 X1 k, `/ J. |! T$ Z
15.函数nl2br能实现这个功能。