上传文件及$_FILES的用法实例
Session变量($_SESSION):�php的SESSION函数产生的数据,都以超全局变量的方式,存放在$_SESSION变量中。
1、Session简介
SESSION也称为会话期,其是存储在服务器上的一小段文件,用于存储用户的相关信息。SESSION之间使用会话标识来区别,每一个SESSION都有唯一的一个标识。使用SESSION也可以完成类似于COOKIE一样的工作。session会自动的对要设置的值进行encode与decode,因此session可以支持存储任意数据类型,包括数组与对象等。
2、使用session_save_path()函数,设置session文件的保存目录,如:
session_save_path("D:/phpnow/Apache2/temp");
//使用session_save_path()函数取得当前session保存的目录
echo session_save_path()."
";
注:PHP安装完成后,由于SESSION的保存路径没有设置,如果直接在脚本中使用SESSION,会出现因为路径不存在而产生的错误。使用session_save_path()函数,可以修改SESSION文件的保存路径,但是仅限于当前脚本。如果在PHP配置文件中,已经设置了有效的SESSION文件保存目录,那么在脚本中可以不使用此函数,此时所有的PHP程序都共用一个目录存储SESSION文件。
3、注册SESSION变量
由于$_SESSION是一个数组,可以使用数组添加单元的方式,来为SESSION增加新变量。如:
session_start();//开启SESSION,使用前,必须要先开启
//使用数组添加单元的方法,增加SESSION变量
$_SESSION["username"] = "phpstuer";//存储字符串 $sessionArr = array("1","2","3");
$_SESSION["arr"] = $sessionArr; //存储数组
NOTE:使用session_register函数也可以,注册SESSION变量,但此函数从PHP5.3后就已弃用,所以这里不再举例。
4、访问SESSION变量
由于SESSION变量,都是以单元的形式,存储在$_SESSION全局变量中,所以使用访问数组的方法,就可以访问SESSION变量。SESSION变量注册后,需要经过初始化后才能使用,这一点与COOKIE是不同的。初始化SESSION的函数是session_start()。如:
//使用session_start()函数开启SESSION
session_start();
//遍历$_SESSION数组
foreach($_SESSION as $key=>$value){
echo "$key=>$value
";
}
echo "单独访问SESSION变量:";
echo $_SESSION["username"]."
";
echo "单独访问SESSION变量 :";
echo $_SESSION["arr"][2];
注意:使用session_start()函数时,为防止出现错误提示信息,在页面最上面添加代码。
5、删除SESSION变量
在使用完SESSION变量后,需要对已经注册的SESSION进行删除,以减少对服务器的资源使用。
session_start();
//删除前:
echo " ";
print_r($_SESSION);
echo "";
//使用unset()函数删除一个$_SESSION变量
unset($_SESSION["username"]);
//使用session_unset()函数,删除当前页面的$_SESSION变量
//session_unset();
//使用session_destroy()函数,删除当前页面的$_SESSION变量并删除SESSION文件
//session_destroy(2881064151); //删除后:
echo " ";
print_r($_SESSION);
echo "";
五、Request变量($_REQUEST)作为超全局变量,$_REQUEST存储了包括$_POST、$_GET、$_COOKIE变量在内的数据。通过访问$_REQUEST,也可以实现$_POST、$_GET、$_COOKIE变量的功能。
虽然$_REQUEST在使用时比较方便,但是其提供的数据存在一定的危险性。比如一段程序使用$_REQUEST读取$_COOKIE值时,那有心的访客可以通过提供一个$_GET变量来模拟$_COOKIE值,从而取得一定的访问权限。
使用实例:略。
六、服务器变量($_SERVER)是由网络服务器创建的数组,其内容包括头信息、路径、脚本位置等。不同的网络服务器提供的信息有所出入,下面实例是以Apache服务器提供的作为标准。
echo " ";
print_r($_SERVER);
echo "";
//解释如下:
echo "显示脚本文件的相对路径和文件名:\"".$_SERVER["PHP_SELF"]."\"
";
echo "显示服务器使用的CGI脚本规范:\"".$_SERVER["GATEWAY_INTERFACE"]."\"
";
echo "显示当前运行脚本所在服务器的IP地址:\"".$_SERVER["SERVER_ADDR"]."\"
";
echo "显示当前运行脚本服务器名称:\"".$_SERVER["SERVER_NAME"]."\"
";
echo "显示当前运行脚本服务器标识:\"".$_SERVER["SERVER_SOFTWARE"]."\"
";
echo "显示请求页面的通信协议的名称和版本:\"".$_SERVER["SERVER_PROTOCOL"]."\"
";
echo "显示访问页面的请求方法:\"".$_SERVER["REQUEST_METHOD"]."\"
";
echo "显示脚本开始运行时间:\"".$_SERVER["REQUEST_TIME"]."\"
";
echo "显示URL问号后的字符串:\"".$_SERVER["QUERY_STRING"]."\"
";
echo "显示当前运行脚本的文档根目录:\"".$_SERVER["DOCUMENT_ROOT"]."
";
echo "显示当前Accept请求的头信息:\"".$_SERVER["HTTP_ACCEPT"]."\"
";
echo "显示当前请求的字符信息:\"".$_SERVER["HTTP_ACCEPT_CHARSET"]."\"
";
echo "显示当前当前请求的Accept-Encoding头信息:\"".$_SERVER["HTTP_ACCEPT_ENCODING"]."\"
";
echo "显示当前请求的Accept-Language头信息:\"".$_SERVER["HTTP_ACCEPT_LANGUAGE"]."\"
";
echo "显示当前请求的Connection头信息:\"".$_SERVER["HTTP_CONNECTION"]."\"
";
echo "显示当前请求的Host头信息:\"".$_SERVER["HTTP_HOST"]."\"
";
echo "显示当前页面的前一个页面的URL地址:\"".$_SERVER["HTTP_REFERER"]."\"
";
echo "显示当前请求的User-Agent的头信息:\"".$_SERVER["HTTP_USER_AGENT"]."\"
";
echo "显示脚本是否可以通过HTTPS协议进行访问:\"".$_SERVER["HTTPS"]."\"
";
echo "显示浏览当前页面用户的IP地址:\"".$_SERVER["REMOTE_ADDR"]."\"
";
echo "显示浏览当前页面用户的主机名:\"".$_SERVER["REMOTE_HOST"]."\"
";
echo "显示用户连接到服务器时所使用的端口:\"".$_SERVER["REMOTE_PORT"]."\"
";
echo "显示当前执行脚本的绝对路径名:\"".$_SERVER["SCRIPT_FILENAME"]."\"
";
echo "显示Apache配置文件中的SERVER_ADMIN参数设置情况:\"".$_SERVER["SERVER_ADMIN"]."\"
";
echo "显示网络服务器使用的端口,默认为\"80\":\"".$_SERVER["SERVER_PORT"]."\"
";
echo "显示服务器版本和虚拟主机名的字符串:\"".$_SERVER["SERVER_SIGNATURE"]."\"
";
echo "显示脚本在文件系统中的基本路径:\"".$_SERVER["PATH_TRANSLATED"]."\"
";
echo "显示当前脚本的路径:\"".$_SERVER["SCRIPT_NAME"]."\"
";
echo "显示访问当前页面的URI:\"".$_SERVER["REQUEST_URI"]."\"
";
七、环境变量($_ENV)是预定义的一个数组,记录着系统路径等信息。
echo "";
print_r($_SERVER);
echo "";
//单独访问环境变量的数组成员,可以通过“$_ENV[‘成员变量名’]”的方式实现,如:
echo "服务器操作系统为:".$_ENV["OS"]."
";
八、 HTTP文件上传变量($_FILES):由HTML表单生成的文件上传变量,以数组的形式记录了上传文件的详细信息,其数组成员包括上传的文件名:name;文件类型:type;临时文件名:tmp_name;错误信息代码 :error;文件大小:size。下面介绍使用HTML表单,生成文件上传变量的方法,
要使表单产生文件变量,要满足三个条件:
1、HTML表单要使用POST方式传递数据。
2、表单的“enctype”参数要设置为“multipart/form-data” 。
3、表单中包含一个文件选择框。
通过$_FILES变量获取上传文件相关信息后,就可以配合其他文件函数实现文件的上传。
上传文件及$_FILES的用法实例:待整理
九、$GLOBALS变量以数组的形式,记录了所有已经定义的全局变量,而变量名就是这个数组的索引。即然$GLOBALS记录着所有的全局变量,那么理所当然的也可以访问全局变量里的信息。下面介绍使用$GLOBALS访问其他预定义变量的方法,如:
session_start();
$_SESSION["school"] = "大学";
echo $_SESSION["school"]."
"; //输出 大学
//使用$GLOBALS显示当前操作系统版本
echo $GLOBALS["_ENV"]["OS"]."
";
//使用$GLOBALS访问SESSION值
echo $GLOBALS["_SESSION"]["school"]."
"; //输出大学
echo "
";
print_r($GLOBALS);
echo "";
上传文件及$_FILES的用法实例的更多相关文章
- 上传文件时$_FILES为空的解决方法
上传视频的时候打印$_FILES为空,小的文件就没问题,后来发现是因为传的文件太大, 出现这个问题的原因主要有两个:表单原因或者php设置原因: 1,表单类型: 上传文件的表单编码类型必须设置成 en ...
- 用PHP上传文件时$_FILES中error返回值详解
用PHP上传文件时,我们会用程序去监听浏览器发送过来的文件信息,首先会通 过$_FILES[fieldName]['error']的不同数值来判断此欲上传的文件状态是否正常.$_FILES[field ...
- php 上传文件。$_FILES
<form name="article" method="post" enctype="multipart/form-data" ac ...
- Web 在线文件管理器学习笔记与总结(19)上传文件
dir.func.php 中添加方法: /* 上传文件 */ function uploadFile($fileInfo,$path,$allowExt = array('jpg','jpeg','p ...
- 用POST方法上传文件
文件上传分为客户端和服务器端 客户端可以通过form表单进行上传 客户端使用html表单进行上传 enctype = "multipart/form-data"用来指定表单编码数据 ...
- PHP上传文件 Error 6解决方法 (转)
按:我采用phpstudy2016,编辑php.ini ,“upload_tmp_dir没放开,直接放开,并指向 /tmp 就OK 上传文件,$_FILES["file"][&qu ...
- PHP+ajaxForm异步带进度条上传文件实例
在使用ajaxForm方法之前,首先需要安装form.js的插件,网上有: 一.首先说用法,ajaxForm可以接收0或1个参数,该参数可以是一个变量.一个对象或回调函数,这个对象主要有以下参数: v ...
- php 上传文件实例 上传并下载word文件
上传界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
- php 上传文件实例 注册账号
注册界面 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
随机推荐
- iOS7总显示状态栏的解决方法
转载http://blog.csdn.net/langresser_king/article/details/18351021 2014年2月份开始,苹果需求开发者必须使用xcode5开发游戏和应用, ...
- 转 MYSQL学习(一)
第一期主要是学习MYSQL的基本语法,陆续还有第二.第三.第四期,大家敬请期待o(∩_∩)o 语法的差异 我这里主要说语法的不同 1.默认约束 区别:mysql里面DEFAULT关键字后面是不用加括号 ...
- 在eclipse中配置一个简单的spring入门项目
spring是一个很优秀的基于Java的轻量级开源框架,为了解决企业级应用的复杂性而创建的,spring不仅可用于服务器端开发,从简单性.可测试性和松耦合性的角度,任何java应用程序都可以利用这个思 ...
- Java for LeetCode 198 House Robber
You are a professional robber planning to rob houses along a street. Each house has a certain amount ...
- 【JAVA、C++】LeetCode 009 Palindrome Number
Determine whether an integer is a palindrome. Do this without extra space. 解题思路一: 双指针法,逐位判断 Java代码如下 ...
- mybatis中的oracle和mysql分页
这段时间一直在用mybatis+spring+springMVC的框架,总结点东西吧. mybatis的oracle分页写法: <?xml version="1.0" enc ...
- 【linux】awk的使用
教程来自:http://www.runoob.com/linux/linux-comm-awk.html 教程中的例子很好,可以有助于快速上手awk.但是里面的细节介绍的并不清楚. 问题1:什么时候写 ...
- HDU 1521 排列组合 指数型母函数
排列组合 Time Limit: 1000MS Memory Limit: 32768KB 64bit IO Format: %I64d & %I64u Submit Status D ...
- Light OJ 1253 Misere Nim (尼姆博弈(2))
LightOJ1253 :Misere Nim 时间限制:1000MS 内存限制:32768KByte 64位IO格式:%lld & %llu 描述 Alice and Bob ar ...
- jQuery常规选择器
//简单选择器$('div').css('color','red'); //元素选择器,返回多个元素$('#box').css('color','red');//id选择器,返回单个元素$('.box ...