PHP3/4.1 register_global=on转向PHP4.2/3 过度方法
程序员文章站
2024-01-24 16:41:04
...
由于早期(PHP3/4.1)的uploadfile所产生的变量仅仅为
$uploadfile
$uploadfile_name
$uploadfile_size
$uploadfile_type
而现在(PHP4.2/3)的所产生的变量为
$_FILES['uploadfile']['name']
$_FILES['uploadfile']['size']
$_FILES['uploadfile']['type']
$_FILES['uploadfile']['temp_name']
$_FILES['uploadfile']['error']
由于新版中增加了error用来判断文件是否上传成功,而老版本则使用
代码:
if(copy($uploadfile,"newpaht/".$uploadfile_name))
来判断文件上传是否成功,因此我们在转换过程中就丢弃了error
相对的,由于新版中丢弃了$uploadfile因此我们必须给此值赋值,而考虑老
版本是使用的copy因此我们将临时文件路径赋于此变量,以协调工作。
代码:
session_start();
$_vars=Array(
"_GET",
"_POST",
"_COOKIE",
"_SESSION",
"HTTP_POST_VARS",
"HTTP_GET_VARS",
"HTTP_COOKIE_VARS",
"HTTP_SESSION_VARS",
"_FILES",
"_ENV"
);//把服务器内的相关变量放在这里
reset($_vars);
for($Tmpa=0;$Tmpa extract($$_vars[$Tmpa],"EXTR_PREFIX_SAME",$_vars[$Tmpa]);
if(strcmp($_vars[$Tmpa],"_FILES")==0){
while(list($key,$value)=each($$_vars[$Tmpa])){
${$key."_name"} =$_FILES['$key']['name'];
${$key."_type"} =$_FILES['$key']['type'];
${$key."_size"} =$_FILES['$key']['size'];
$$key=${$key."_tmpname"}=$_FILES['$key']['tmp_name'];
}
}
}
?>
以上代码经过修改测试,可以正常使用...
使用方法
代码:
@include("pathtothisfile.php");
?>
$uploadfile
$uploadfile_name
$uploadfile_size
$uploadfile_type
而现在(PHP4.2/3)的所产生的变量为
$_FILES['uploadfile']['name']
$_FILES['uploadfile']['size']
$_FILES['uploadfile']['type']
$_FILES['uploadfile']['temp_name']
$_FILES['uploadfile']['error']
由于新版中增加了error用来判断文件是否上传成功,而老版本则使用
代码:
if(copy($uploadfile,"newpaht/".$uploadfile_name))
来判断文件上传是否成功,因此我们在转换过程中就丢弃了error
相对的,由于新版中丢弃了$uploadfile因此我们必须给此值赋值,而考虑老
版本是使用的copy因此我们将临时文件路径赋于此变量,以协调工作。
代码:
session_start();
$_vars=Array(
"_GET",
"_POST",
"_COOKIE",
"_SESSION",
"HTTP_POST_VARS",
"HTTP_GET_VARS",
"HTTP_COOKIE_VARS",
"HTTP_SESSION_VARS",
"_FILES",
"_ENV"
);//把服务器内的相关变量放在这里
reset($_vars);
for($Tmpa=0;$Tmpa
if(strcmp($_vars[$Tmpa],"_FILES")==0){
while(list($key,$value)=each($$_vars[$Tmpa])){
${$key."_name"} =$_FILES['$key']['name'];
${$key."_type"} =$_FILES['$key']['type'];
${$key."_size"} =$_FILES['$key']['size'];
$$key=${$key."_tmpname"}=$_FILES['$key']['tmp_name'];
}
}
}
?>
以上代码经过修改测试,可以正常使用...
使用方法
代码:
@include("pathtothisfile.php");
?>