uploadify 火狐下上传不成功,错误提示没有session
用的thinkphp框架,刚去tp讨论看了好多,尝试了一下都不行。
不太理解到底怎样才算是通过登录验证了。
public function _initialize(){
// 验证用户是否登陆
if (!session('?name') or !session('?dutydate')) {
$this->error('未登录,跳转到登录页面',__MODULE__.'/login/index',3);
}
}
看了一篇这样的文章(http://www.edbiji.com/doccenter/showdoc/54/nav/702.html),情况跟我一样,我不太明白,他这篇文章服务端代码这样写的意义是什么?
//初始化执行
public function _initialize(){
//此处为解决Uploadify在火狐下出现http 302错误 重新设置SESSION
$session_name = session_name();
if (isset($_POST[$session_name])) {
session_id($_POST[$session_name]);
session_start();
}
//执行登陆验证检测函数
$this->powerverify();
}
我的是这样的,我只判断session('name') 和 session('dutydate'),
那如果我要接受uploadify,post过来的值。$_POST['test],这就是我当前的session了
我按照文章的意思写,但是我觉得没有任何意义啊?搞不懂这块是什么意思?
public function _initialize(){
$session_name = $_POST['test'];
if (isset($_POST[$session_name])) {
session('name',$_POST[$session_name]);
session('[start]');
}
// 验证用户是否登陆
if (!session('?name') or !session('?dutydate')) {
$this->error('未登录,跳转到登录页面',__MODULE__.'/login/index',3);
}
}
有空的大神,帮忙看下,调试好久了,还是不行,烟都抽完了。。。。
回复内容:
用的thinkphp框架,刚去tp讨论看了好多,尝试了一下都不行。
不太理解到底怎样才算是通过登录验证了。
public function _initialize(){
// 验证用户是否登陆
if (!session('?name') or !session('?dutydate')) {
$this->error('未登录,跳转到登录页面',__MODULE__.'/login/index',3);
}
}
看了一篇这样的文章(http://www.edbiji.com/doccenter/showdoc/54/nav/702.html),情况跟我一样,我不太明白,他这篇文章服务端代码这样写的意义是什么?
//初始化执行
public function _initialize(){
//此处为解决Uploadify在火狐下出现http 302错误 重新设置SESSION
$session_name = session_name();
if (isset($_POST[$session_name])) {
session_id($_POST[$session_name]);
session_start();
}
//执行登陆验证检测函数
$this->powerverify();
}
我的是这样的,我只判断session('name') 和 session('dutydate'),
那如果我要接受uploadify,post过来的值。$_POST['test],这就是我当前的session了
我按照文章的意思写,但是我觉得没有任何意义啊?搞不懂这块是什么意思?
public function _initialize(){
$session_name = $_POST['test'];
if (isset($_POST[$session_name])) {
session('name',$_POST[$session_name]);
session('[start]');
}
// 验证用户是否登陆
if (!session('?name') or !session('?dutydate')) {
$this->error('未登录,跳转到登录页面',__MODULE__.'/login/index',3);
}
}
有空的大神,帮忙看下,调试好久了,还是不行,烟都抽完了。。。。
火狐在用uploadify的时候确实有问题,这是因为火狐的flash无法传递当前域的cookie,官方文档上对这个问题有解决方案。
跟你的代码处理方式类似。
将 session_id 放在url或者post请求中传过去,如果请求中有相关值则使用这个值生成session,否则就使用cookie中的值来获取session。
通过 session_id 获取当前用户session,请求接收后再用 session_id 指定用户session再start
大概如下:
//上传前
$auth = session_id();
//传输该值
//指定session
if(!empty($_POST['auth'])){
session_id($_POST['auth']);
session_start();
}else{
session_start();
}