php预定义变量(二) 四、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();
//删除后:
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
;
http://www.bkjia.com/phpjc/905598.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/905598.htmltecharticlephp预定义变量(二) 四、session变量($_session):由php的session函数产生的数据,都以超全局变量的方式,存放在$_session变量中。 1、session简介...