当用户请求servlet,servlet会首先查看第三方应用端cookie中是否有sessionID,如果有则证明是旧的会话,那么就通过cookie将sessionID发送到服务器,服务器就会根据sessionID到服务器的内存中查找session对象(因为每个session都会有一个sessionID来标识session对象),找到之后然后使用。
如果cookie中没有sessionID这证明是一个新的会话。服务器就会创建一个新的Session对象,然后将SessionID存放早cookie中,通过cookie把sessionID发送到第三方应用端。第三方应用端下一次访问的时候,就会将SessionID发送到服务器以便再次找到这个session对象,完成会话跟踪所以如果用户将cookie关闭session也将会失效。session是依赖与cookie的。
与cookie的区别与联系:cookie在第三方应用端保存用户的信息,而session在服务器上保存第三方应用的信息
session依赖于cookie。如果用户关闭cookie,则session失效,原因是sessionID无法从第三方应用端传递到服务端,也不能从服务端传递到第三方应用端.
session怎么设置过期时间:
第一种方法即设置php.ini配置文件,设置session.gc_maxlifetime和session.cookie_lifetime节点属性值
第二种方法即设置Session时间戳
120.字符串反转给定字符串abcdef,写出反转函数,将字符串反转为fedcba.
function myStrReve($str){
$len = strlen($str);
$result = \'\';
for($i = $len - 1; $i >=0 ; $i-- ){
$result .= $str[$i];
}
return $result;
}
121.GD库是做什么用的?gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。 122.COOKIE、SESSION的联系和区别,多台web服务器如何共享SESSION?
使用session_start()调用session,服务器端在生成session文件的同时,生成sessionID哈希值和默认值为PHPSESSID的sessionname,并向第三方应用端发送变量为(默认的是)PHPSESSID(sessionname),值为一个128位的哈希 值。服务器端将通过该cookie与第三方应用端进行交互。
session变量的值经PHP内部系列化后保存在服务器机器上的文本文件中,和第三方应用端的变量名默认情况下为PHPSESSID的cookie进行对应交 互,即服务器自动发送了HTTP头:header(\'Set- Cookie:session_name()=session_id();path=http://www.likecs.com/\');即setcookie(session_name(),session_id());当从该页跳转到的新页面并调用session_start()后,PHP将检查与给定ID相关联的服务器端存贮的session数据,如果没找到,则新建一个数据集。
123、什么是队列?排它锁,Myisam死锁如何解决?在默认情况下MYisam是表级锁,所以同时操作单张表的多个动作只能以队列的方式进行;
排它锁又名写锁,在SQL执行过程中为排除其它请求而写锁,在执行完毕后会自动释放;
死锁解决:先找到死锁的线程号,然后杀掉线程ID
124、打开php.ini中的safe_mode,会影响哪些函数?至少说出6个。1)用户输入输出函数(fopen()file()require(),只能用于调用这些函数有相同脚本的拥有者)
2)创建新文件(限制用户只在该用户拥有目录下创建文件)
3)用户调用popen()systen()exec()等脚本,只有脚本处在safe_mode_exec_dir配置指令指定的目录中才可能
4)加强HTTP认证,认证脚本拥有者的UID的划入认证领域范围内,此外启用安全模式下,不会设置PHP_AUTH
5)mysql服务器所用的用户名必须与调用mysql_connect()的文件的拥有者用户名相同6)
受影响的函数变量以及配置命令达到40个
125.Smarty的原理smarty是个模板引擎,最显著的地方就是有可以把模板缓存起来。一般模板来说,都是做一个静态页面,然后在里面把一些动态的部分用一切分隔符切开,然后在PHP里打开这个模板文件,把分隔符里面的值替换掉,然后输出来,你可以看下PHPLib里面的template部分。
而smarty设定了缓存参数以后,第一运行时候会把模板打开,在php替换里面值的时候把读取的html和php部分重新生成一个临时的php文件,这样就省去了每次打开都重新读取html了。如果修改了模板,只要重新刷下就行了。
126、写出五种以上你使用过的PHP的扩展的名称(提示:常用的PHP扩展)mb_sring、iconv、curl、GD、XML、socket、MySQL、PDO等
127、怎么把文件保存到指定目录?怎么避免上传文件重名问题?