功能控制完备的PHP上载程序(1)

 

■主控程序 upfile.php

<?

####################################################################

#Project Name: Test

#Author : lanf

#Home Page: http://lanf.yeah.net

#E-mail:imbusy@263.net

#Time: 2001 . 9

####################################################################

##验证身份函数

function getUserRight($username,$user){

if($username==$user' '$user=="*") return true;

echo "<html>您没有这个操作ID的权限。<a href=javascript:window.history.back()>点这里返回修改</a></html>";

return false;

}

##验证身份函数结束

##文件类型验证函数

function getFileType($filename,$fileType){

$fileExtent=strrchr($filename, ".");$fileExtent=substr($fileExtent,1);

$fileExtent=strtolower($fileExtent);$fileType=strtolower($fileType);

if(strstr($fileType,"jpg")|| strstr($fileType,"gif")' 'strstr($fileType,"png") ){

if(!GetImageSize($imgfile)) {

echo "<html>这个操作ID不允许上传此种类型文件。<a href=javascript:window.history.back()>点这里返回修改</a></html>";

return false;};

};

if(strstr($fileType,$fileExtent )' '$fileType="*") return true;

echo "<html>这个操作ID不允许上传此种类型文件。<a href=javascript:window.history.back()>点这里返回修改</a></html>";

return false;

}

##文件类型验证函数结束

##上传站点验证函数

function checkFromSiteErr($siteFrom,$limitSite){

//取得站点域名的ip地址;http://202.108.240.75 www.yyy.com

//echo $siteFrom;

$step1=substr($siteFrom,7);//echo "<br>$step1";

$step2=strpos($step1, "/");//echo "<br>$step2";

$step3=substr($step1,0,$step2);//echo "<br>$step3";

//if(eregi("^[0-9]+.[0-9]+.[0-9]+.[0-9]+$",$step3)){;}else{

$referIP=gethostbyname($step3);//echo "<br>ip:$referIP<br>";

//}

//到这里,$referIP已经是一个上一个页面的ip地址。

//匹配相关的内容。

if(strpos($limitSite,",",1)){

//说明是一组值

$pieces = explode(",",$limitSite);

while(list($key,$value) = each($pieces)){

$limit=gethostbyname($value);

if($starPos=strpos($limit,"*")){

//带*号的IP

$tempLimit=substr($limit,0,$starPos);

$tempFromIP=substr($referIP,0,$starPos);

if($tempLimit==$tempFromIP){

return false;

}else{

continue;

};

}else{

//不带*号的IP

if($limit==$referIP){

return false;

}else{

continue;

};

};

}

echo "<html>错误的上传站点#16。<a href=javascript:window.close()>点这里关闭窗口</a></html>";

return true;

}else{

//说明只有一个限制

$limit=gethostbyname($limitSite);

if($starPos=strpos($limit,"*")){

//带*号的IP

$tempLimit=substr($limit,0,$starPos);

$tempFromIP=substr($referIP,0,$starPos);

if($tempLimit==$tempFromIP){

return false;

}else{

echo "<html>错误的上传站点。<a href=javascript:window.close()>点这里关闭窗口</a></html>";

return true;

};

}else{

//不带*号的IP

if($limit==$referIP){

return false;

}else{

echo "<html>错误的上传站点。<a href=javascript:window.close()>点这里关闭窗口</a></html>";

return true;

};

};

}

};

##上传站点验证函数结束

##日志记录函数

function putLog($actionID,$message,$flag="a"){

if(!file_exists("./log")){

echo "当前目录没有建立属性为0777的log目录,正在尝试建立……";

if(@mkdir("./log",0777)){echo "建立成功!!!";}else{echo "失败!权限不足,请手动建立 ./log 。<br> 日志没有被记录……"; return false;}

}

 $logfile="./log/".$actionID.$flag.".log";

 $cmdstr="echo "".$message."" >> ".$logfile;

 if (!file_exists($logfile)) {passthru("touch ".$logfile); chmod($logfile,0777);}

 passthru($cmdstr);

 return true;

};

##日志记录函数

##取配置文件参数函数

function get_config($conf,$actionID="",$actionType=""){

//$conf 配置文件名,$actionID 操作ID ,$actionType 操作类型

global $targetDir,$user,$maxLength,$fileType,$checkFile,$limitSite,$callback;

$actionID=trim($actionID);

if($actionID=="") return false;

$keylength=strlen($actionID);

$fileArray=file($conf);

$canshuZoneId=0;

if($actionType=="upload"){

//假如是上传文件的话

while (list($key,$value) = each($fileArray)) {

$value=trim($value);

//判断参数区域,将参数提取限制在上传文件设置区

$Zone_temp=substr($value,0,1);

if($Zone_temp=="["){//开始一个参数区域

if(strstr($value, "up")){<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

时间: 2025-01-01 07:59:55

功能控制完备的PHP上载程序(1)的相关文章

功能控制完备的PHP上载程序(4)

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  [table del] #id user fa001 lanf up lanf #这个意思是说,操作id为fa001中上传的文件,只有lanf可以删除 ?>    ■调用页面 <html><head><title>文件上传</title><meta http-e

功能控制完备的PHP上载程序(2)

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  $canshuZoneId=1; }else{ if($canshuZoneId==0) { continue; }else{ break; } } }else{ if($canshuZoneId==0) continue; }//区域选择结束 $id_temp=substr($value,0,$keylength);

功能控制完备的PHP上载程序(3)

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  get_config($configureFile,$actionid,"upload"); ?> <html> <head> <title>文件管理</title> <meta http-equiv="Content-Type&q

使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序

server|web|程序|全文搜索 使用 Microsoft SQL Server 2000 的全文搜索功能构建 Web 搜索应用程序 Andrew B. CenciniMicrosoft Corporation 2002年12月 适用于:    Microsoft SQL Server 2000摘要:学习如何充分利用 SQL Server 2000 的全文搜索功能.本文包含有关实现最大吞吐率和最佳性能的几点提示和技巧. 目录简介 全文搜索功能简介 配置全文搜索功能 全文查询 排位和优化 其他

mfc-vc++怎么在系统 控制面板程序程序和功能 里面添加自己的程序

问题描述 vc++怎么在系统 控制面板程序程序和功能 里面添加自己的程序 vc++怎么在系统 控制面板程序程序和功能 里面添加自己的程序怎么让360软件管家 以及其他的软件管家检测到自己的程序 vc 怎么实现 解决方案 只要把你的程序信息写在注册表的localmachinesoftwaremicrosoftwindowscurrentversionuninstall下,新建一个键,添加你的安装程序路径(你可以参考别的程序的做法). 然后就有了. 解决方案二: 编写控制面板程序的一个例子 如何编写

设计-数据计算量大、存储量大但是功能简单的java Web程序,采用什么框架比较好?

问题描述 数据计算量大.存储量大但是功能简单的java Web程序,采用什么框架比较好? 如题,我是开发人员刚刚接触设计,现在有一个项目是数据的存储量和计算量比较大,但是功能相对简单,选用什么框架比较好呢?能尽量使存储效率和计算速率都比较高? 是b/s结构的程序,是否需要用ssh或者ssi? 谢谢! 解决方案 数据计算量大,不适合放在web应用层来做,应该用后台作业去完成.因为web应用层不适合维持长期的连接和长时占用计算资源. 解决方案二: 直接servlet/jsp就行呗. 解决方案三: 个

控制 桌面 屏保 开机-现有的计算机开机进入桌面的控制系统?(复杂的控制进入桌面的程序)

问题描述 现有的计算机开机进入桌面的控制系统?(复杂的控制进入桌面的程序) 有没有一种方法,能够实现在电脑开机前需要做一道廉政题目(选择题.判断题),做正确了才允许开机? 或者把廉政题目设置成屏保,设定屏保开机启动,在屏保中答对题目才可解除屏保进入桌面,那么制作满足要求的屏保要用哪些工具呢?

winapi 消息-为控制避免其他应用程序窗体显示锁定,需要向该窗体发送什么消息?

问题描述 为控制避免其他应用程序窗体显示锁定,需要向该窗体发送什么消息? WINAPI应用,已得到其他应用程序的窗体句柄,如何避免其闲时锁定? 比如该窗体设置10分钟闲时锁定,如何在10分钟之内给该窗体发送消息以避免锁定? 以下代码不能阻止锁定,不知什么原因?如何修改? SetForegroundWindow(hwdApp); SendMessage(hwdApp, 0x00A1, 1, 1); SendMessage(hwdApp, 0x00A2, 1, 1);//一个down一个up构成一次

如何控制其它进程应用程序的位置,窗口大小?

问题描述 如何控制其它进程应用程序的位置,窗口大小?由于项目需要,欲设计一个对话框程序,用来控制另外一个可执行程序启动时在显示器上的位置,大小,并屏蔽最大化,最小化按钮,并禁止窗体的移动?请问能否实现? 解决方案 解决方案二:http://blog.sina.com.cn/s/blog_593b4d50010009vm.htmlhttp://blog.sina.com.cn/s/blog_593b4d50010009wb.html解决方案三:不会,帮顶解决方案四:我也想了解,谢谢LZ.解决方案五