PHP的SESSION使用,文件上传下载等

13年前
PHP中Session的使用:
1. session_start():
初始化session,如果页面要使用session,必须先使用这句话,否则会报错。
告诉服务器使用session。一般来说,php是不会主动使用session的。
不过可以设置php.ini中的session.auto_start=1来自动对每个请求使用。
而用了session_start(),或者自动开启session,
服务器会根据请求头部传来的cookie中或url中的PHPSESSID来确认此sessionid对应的$_SESSION数组。
2. session_register("sessionName"):注册一个名字叫sessionName的session
3. $_SESSION["sessionName "].=”asdfasdf”:给已经注册了的session添加值
4. session_unregister("sessionName "); //注销session


PHP文件上传步骤:
1. 使用form表单上传文件,注意enctype的属性值必须是:multipart/form-date,意思是使用二进制的形式传递表单中的数据
2. 跳转之后使用:$_FILES["uploadFile"]接收到上传的文件
3. 保存需要的数据完成上传

Move_uploaded_file($uploadFile["tmp_name"], "./uploadFile/".$name)):
保存的路径必须以“.”开头,表示当前目录
Move_uploaded_file会事先检测是否是合法的上传的文件,否则不移动,只能移动从浏览器上传的文件
Copy将文件拷贝到目的地

上传文件时中文文件名乱码: 一般状况下上传以中文为文件名的文件会出现乱码: 寮€鍚疢ySql杩滅▼鐧婚檰.txt
只需要使用iconv(fromEncoding,toEncoding,filename)方法就可以
$filename=iconv("utf-8","gbk",$filename); //从utf-8转gbk
同样的,在文件下载的时候也会出现乱码问题,同样使用这个方法解决。


文件下载:
$sql=mysql_query("select * from tb_soft where id='".$id."'",$conn);  $info=mysql_fetch_array($sql);  $path=$info[address];  $filename=basename($path);  $file=fopen($path,"r");  header("Content-type:application/octet-stream");  header("Accept-ranges:bytes");  header("Accept-length:".filesize($path));  header("Content-Disposition:attachment;filename=".$filename);  echo fread($file,filesize($path));  fclose($file);  exit; 


PHP时间与系统时间不匹配:
方法一:
打开php.ini文件,一般在PHP的安装根目录下 
找到其中的;date.timezone 
删掉date.timezone前面的分号,并改成date.timezone = PRC 
存盘,并重新启动Apahce服务。
方法二:
在程序前面加上date_default_timezone_set(PRC);
例如:
<?php  date_default_timezone_set(PRC);  echo date("Y-m-d H:i:s");  ?>