这是本系统的download.php,主要负责下载和记数,其中文件格式均在注释中说明.

<html>

<?php
//传入num为要下载的文件号,col=要下载的分栏
//ip不超时下载次数加一

//文件格式
//0编号<1作者<2文件位置<3投票计数<4简介<5文件大小<6文件下载次数
//ip文件格式  地址:项目:时间


$uploadto="../uploadfile/".$col."/";//上传到的子目录
$cgiroot="http://eccct.51.net/cgi-bin/";    //主机加当前目录

$pathtemp=explode("/",$HTTP_ENV_VARS["PATH_INFO"]);
$pathtemp[sizeof($pathtemp)-1]="";
$cgiroot="http://".$HTTP_HOST.implode("/",$pathtemp);//主机加当前目录

$ipfile=$uploadto.$col.".ipd";//下载用的ip文件
$overtime=4;//超时时间小时

$goback="<br><br><br><br><center>系统将在3秒后返回....</center><script>setTimeout('location.href="view.php?col=".$col.""',3000)</script>";
$recfile=$uploadto.$col.".lst";


//取出ip文件
$fp=@fopen($ipfile,"r") or die("对不起该投票不合法".$goback);
$ipinfo=fread($fp,filesize($ipfile));
fclose($fp);
unlink($ipfile);
$times=getdate();
$abstime=$times["yday"].sprintf("d",$times["hours"]);
//绝对时间  




//把超时的ip去掉
$ip_times=explode("|",$ipinfo);
$temp="";
$ipinfo="";

    for($i=0;$i<sizeof($ip_times);$i ){

        $ip=explode(":",$ip_times[$i]);
        if($ip[1]==""||$ip[0]==""||$ip[2]=="") continue;
        eval ('$temp='.$abstime.'-'.$ip[2].';');

        if($temp<$overtime&&$temp>=0){

        $ipinfo.=($ip_times[$i]."|");
        }
    }
//echo $ipinfo;
if(strstr($ipinfo,$REMOTE_ADDR.":".$num))
{
    $fp=@fopen($ipfile,"w") or die("出现错误".$goback);
    fwrite($fp,$ipinfo);
    fclose($fp);
    $firstdown=0;//第一次下载
}
else{
$firstdown=1;//不是第一次下载

$ipinfo=$ipinfo.$REMOTE_ADDR.":".$num.":".$abstime."|";

$fp=@fopen($ipfile,"w") or die("出现错误".$goback);
fwrite($fp,$ipinfo);
fclose($fp);
}

//ip判断结束







for($i=0;$i<100 && !file_exists($recfile);$i );
if($i==99) die("系统出错00".$goback);


$fp=@fopen($recfile,"r") or die("对不起不合法".$goback);
$info=explode(">",fread($fp,filesize($recfile)));
fclose($fp);
copy($recfile,$recfile.".bak");
unlink($recfile);







for($i=0;$i<sizeof($info);$i ){

    $items=explode("<",$info[$i]);
         if(!trim($items[0])) continue;
    if(trim($items[0])==$num){//要下载的项目
        if($firstdown)
        $items[6] ;
        $filepath=$uploadto.$items[2];
        $info[$i]=implode("<",$items);         
        break;
    }

         
}

//$writetofile=implode(">",$info);

if(!$fp=fopen($recfile,"w")){
copy($votefile.".bak",$votefile);
die("出错02".$goback);
}



for($i=0;$i<sizeof($info);$i ){
    if(trim($info[$i])!="") fputs($fp,trim($info[$i].">"));
}
    fclose($fp);


echo "<head><meta http-equiv='refresh' content='3;URL=".$filepath."'>";
echo "<link rel='stylesheet' href='../css/eccct.css'></head>";
echo "<body class=tb >";
echo "<div >";
echo "<br><br><br>";
echo "<div class='values'>您的浏览器会在三秒钟后自动下载</div>";
echo "<br><br><br>";
echo "<div class='values'>或者点击<a href='".$filepath."'>此处</a>下载</div>";
echo "<br><br><br>";
echo "</div>";

//echo $HTTP_ENV_VARS["PATH_INFO"];
//echo "<script>window.location.href='".$filepath."';window.close();</script>";

echo "</body>";

//header("Content-type: application/.rar");

//header("Content-Disposition: attachment; filename=".$filepath);
//Header("Location: ".$filepath);
//header("Content-Description: PHP3 Generated Data



?>
</html>

不用数据库的多用户文件自由上传投票系统(2)的更多相关文章

  1. 基于EJB技术的商务预订系统的开发

    用EJB结构开发的应用程序是可伸缩的、事务型的、多用户安全的。总的来说,EJB是一个组件事务监控的标准服务器端的组件模型。基于EJB技术的系统结构模型EJB结构是一个服务端组件结构,是一个层次性结构,其结构模型如图1所示。图2:商务预订系统的构架EntityBean是为了现实世界的对象建造的模型,这些对象通常是数据库的一些持久记录。

  2. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  3. 缺少ios开发签名身份(null)

    当我尝试生成ipa文件时,我收到此错误.无法解决.请帮我解决此错误:我有自己的帐户,在我的钥匙链中访问它的鞋子像这样:我没有使用新的Mac,我已经创建了ipa.Day.但今天无法做到.我也有.cer个人资料.它有效解决方法这是Apple发表的声明.Thanksforbringingthistotheattentionofthecommunityandapologiesfortheissuesyou

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  6. PHP实现文件安全下载

    例如你希望客户要填完一份表格,才可以下载某一文件,你第一个想法一定是用"Redirect"的方法,先检查表格是否已经填写完毕和完整,然后就将网址指到该文件,这样客户才能下载,但如果你想做一个关于"网上购物"的电子商务网站,考虑安全问题,你不想用户直接复制网址下载该文件,笔者建议你使用PHP直接读取该实际文件然后下载的方法去做。feof){echofread;}fclose;}这样就可以用PHP直接输出文件了。

  7. 如何在PHP环境中使用ProtoBuf数据格式

    这篇文章主要介绍了如何在PHP环境中使用ProtoBuf数据格式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

  8. Python爬取奶茶店数据分析哪家最好喝以及性价比

    这篇文章主要介绍了用Python告诉你奶茶哪家最好喝性价比最高,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

  9. 利用Python上传日志并监控告警的方法详解

    这篇文章将详细为大家介绍如何通过阿里云日志服务搭建一套通过Python上传日志、配置日志告警的监控服务,感兴趣的小伙伴可以了解一下

  10. node下使用UglifyJS压缩合并JS文件的方法

    下面小编就为大家分享一篇node下使用UglifyJS压缩合并JS文件的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部