
首先session信息是储存在服务器端的数据,前端页面无法获取
你想将session传递给前端页面有两种选择
1,将信息转存到cookie中,这样就能通过js读取到
2,后端生成页面时,在页面上使用服务器语言(如:java,php)将session信息以文本方式打印在前端页面上的某个js参数或某个div中,然后前端页面可以读取到
直接使用超全局变量$_SESSION就可以了。
比如你在上一个页面$_SESSION['abc'] = 5;
在另一个页面 就直接可以 echo $_SESSION['abc'];
输出5
具体代码如下:
<php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
>
PHP 独特的语法混合了C、Java、Perl以及PHP自创的语法。
它可以比CGI或者Perl更快速地执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML(标准通用标记语言下的一个应用)文档中去执行,
执行效率比完全生成HTML标记的CGI要高许多;
PHP还可以执行编译后代码,编译可以达到加密和优化代码运行,使代码运行更快。
Web应用中常需要提供文件上传的功能。典型的场景包括用户头像上传、相册上传等。当需要上传的文件比较大的时候,提供一个显示上传进度的进度条就很有必要了。
在PHP
54以前,实现这样的进度条并不容易,主要有三种方法:
1使用Flash,
Java,
ActiveX
2使用PHP的APC扩展
3使用HTML5的File
API
第一种方法依赖第三方的浏览器插件,通用性不足,且易带来安全隐患。不过由于Flash的使用比较广泛,因此还是有很多网站使用Flash作为解决方案。
第二种方法的不足在于,它需要安装PHP的APC扩展库,要求用户能够控制服务器端的配置。另外,如果安装APC仅仅是为了实现一个上传进度条,那么显然有点杀鸡用牛刀的意思。
第三种方法应该是最为理想的方法,不需要服务器端的支持,仅在浏览器端使用Javascript即可。但是由于HTML5标准尚未确立,各浏览器厂商的支持也不相同,所以暂时这种方法还难以普及。
PHP
54中引入的基于session的上传进度监视功能(sessionupload_progress),它提供了一个服务器端的上传进度监视解决方案。升级到PHP
54之后,可以不必安装APC扩展,仅使用原生PHP和前端的Javascript即可实现上传进度条。
下面我们就详细介绍一下
PHP
54
的这个
sessionupload_progress
新特性。
原理介绍
当浏览器向服务器端上传一个文件时,PHP将会把此次文件上传的详细信息(如上传时间、上传进度等)存储在session当中。然后,随着上传的进行,周期性的更新session中的信息。这样,浏览器端就可以使用Ajax周期性的请求一个服务器端脚本,由该脚本返回session中的进度信息;浏览器端的Javascript即可根据这些信息显示/更新进度条了。
那么,文件上传信息具体是如何存储的?我们要如何访问它呢?下面我们来详细说明。
PHP
54
中引入了一些配置项(在phpini中进行设置)
复制代码
代码如下:
sessionupload_progressenabled
=
"1"
sessionupload_progresscleanup
=
"1"
sessionupload_progressprefix
=
"upload_progress_"
sessionupload_progressname
=
"PHP_SESSION_UPLOAD_PROGRESS"
sessionupload_progressfreq
=
"1%"
sessionupload_progressmin_freq
=
"1"
其中enabled控制upload_progress功能的开启与否,默认开启;cleanup
则设置当文件上传的请求提交完成后,是否清除session的相关信息,默认开启。
prefix
和
name
两项用来设置进度信息在session中存储的变量名/键名。关于这两项的详细使用见下文。
freq
和
min_freq
两项用来设置服务器端对进度信息的更新频率。合理的设置这两项可以减轻服务器的负担。
在上传文件的表单中,需要为该次上传设置一个标识符,并在接下来的过程中使用该标识符来引用进度信息。具体的,在上传表单中需要有一个隐藏的input,它的name属性为phpini中
sessionupload_progressname
的值;它的值为一个由你自己定义的标识符。如下:
复制代码
代码如下:
<input
type="hidden"
name="<php
echo
ini_get('sessionupload_progressname');
>"
value="test"
/>
接到文件上传的表单后,PHP会在$_SESSION变量中新建键,键名是一个将sessionupload_progressprefix的值与上面你自定义的标识符连接后得到的字符串,可以这样得到:
复制代码
代码如下:
$name
=
ini_get('sessionupload_progressname');
$key
=
ini_get('sessionupload_progressprefix')
$_POST[$name];
$_SESSION[$key];
//
这里就是此次文件上传的进度信息了
以上就是关于页面中如何去session的值全部的内容,包括:页面中如何去session的值、php怎样在另外一个页面获取session的值、php中如何获取session-CSDN论坛等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)