不用数据库的多用户文件自由上传投票系统(1)


Posted in PHP onOctober 09, 2006

这是我近来开发的一套上传投票一体化的系统,共由4个php和若干记录文件组成,这是第一个view.php,主要负责显示文件列表和上传的文件表单和文件名的检验.其中的地址均为真实地址,请使用时作相应修改,我将在最后1篇提供具体的使用方法。

<html>
<head>

<link rel="stylesheet" href="../css/eccct.css">
</head>

<body>
<center>
<script src=http://home.classover.com/~vampirehunter/js/menu.js></script>
<script>

function opennewwin(url){

window.open(url,null,"height=200,width=200,status=no,toolbar=no,menubar=no,location=no");

}

function check(theform){
var tempstr=theform.upfile.value.split("\");

var files=tempstr[tempstr.length-1].split(".");

if(theform.writer.value=="" || theform.upfile.value=="" ){alert("作者与文件名不能为空");event.returnValue= false; }

if(escape(tempstr[tempstr.length-1]).indexOf("%u")!=-1){
alert("文件名不能为中文");
event.returnValue= false;

}

if(files.length<2 || (files[1]!="rar" && files[1]!="zip")){
alert("文件名必须以小写zip或rar结尾");
event.returnValue= false;
}

}
</script>

</head>
<body>

<?php
//col为栏目,当存在$uploadto/$col.if(纪录title),$col.ip,$col.ipd,$col.lst时合法
//
//page为第几页1-n
//rowperpage为每页几行

if(!$page) $page=0;

$rowperpage=5;
if(!$col) die("系统出错");

$cgiroot="http://eccct.51.net/cgi-bin/";//此php所在位置
$uploadto="../uploadfile/".$col."/";

$fp=@fopen($uploadto.$col.".if","r") or die("系统出错");

$title=fread($fp,filesize($uploadto.$col.".if"));

fclose($fp);//$title为本上传的名称

$recfile=$uploadto.$col.".lst";
$fp=@fopen($recfile,"r") or die("系统出错");

$info=explode(">",fread($fp,filesize($recfile)));
fclose($fp);

$maxpage=ceil((sizeof($info)-1)/$rowperpage);
if(!$maxpage) $maxpage=1;

if($page>$maxpage||$page<1)$page=1;

echo "<table class=tb cellspacing=0 cellpadding=0 ><tr><td colspan=10><br><br><center><h2>".$title."<hr></h2></center></td></tr><tr>";
echo "<td width=25%>共".(sizeof($info)-1)."个作品</td>";

echo "<td width=25%>第".$page."/".$maxpage."页</td>";
echo "<td width=25%>";
if($page+1<=$maxpage)
echo "<a href='view.php?col=".$col."&page=".($page+1)."'>下一页</a>";

echo "</td>";
echo "<td width=25%>";
if($page-1>0)
echo "<a href='view.php?col=".$col."&page=".($page-1)."'>上一页</a>";
echo "</td>";
echo "</tr></table><br><br>";
$startrec=($page-1)*$rowperpage;
$endrec=$startrec+$rowperpage;

for($i=$startrec;$i<$endrec&&$info[$i]!="";$i++){

    $items=explode("<",$info[$i]);
         if(!trim($items[0])) continue;

    echo "<table class='tb' border=1 cellspacing=0 cellpadding=0>";
    echo "<tr><td width=16.5% class=items>编号</td>";

    echo "<td width=16.5%  class=values>".$items[0]."</td>";
    if(!trim($items[1]))$items[1]="打死我也不说";
    echo "<td width=16.5%  class=items>作者</td><td width=16.5% class=values>".$items[1]."</td>";
$temp=sprintf("%d",trim($items[5])/1024);
echo "<td width=16.5% class=items>文件名</td><td class=values>".trim($items[2])."(".$temp."KB)</td>";
    echo "</tr><tr>";

     
echo "<td  class=items>得票数</td><td class=values >".$items[3]."</td>";
echo "<td class=items>下载次数</td><td class=values width=13%>".$items[6]."</td>";

$click="opennewwin("download.php?num=".$items[0]."&col=".$col."");return false;";

$ev="<td class=values><input type='button' value=下载 onclick='".$click."'></td>";
echo $ev;

    echo "<td  class=values><a href='vote2.php?col=".$col."&option=".$items[0]."' >我要投票</a></td></tr>";

        if(!trim($items[4]))$items[4]="保密";
    echo "<tr><td class=items>简介</td><td class=values colspan=10>".$items[4]."</td></tr>";
    echo "</table><br><br>";

}

?>
<form method="post" action="upload.php" enctype="multipart/form-data" onsubmit="check(this);">

<table class=tb border=1>
<tr><td><center><h2>我要投稿</h2></center></td></tr>
<tr><td>
  作者:<input type="text" name="writer"></td></tr>
<tr><td>简介:<TEXTAREA name="intro" STYLE="width:600;overflow:hidden" >
</TEXTAREA>
</td></tr>
<tr><td> <input type=hidden name=col value="<? echo $col?>">
文件:<input type="file" name="upfile">(文件名请不要包含中文,文件小于1MB,以zip,rar结尾)</td></tr>
<tr><td align="center">  <input type="submit" name="Submit" value="提交">

</td></tr>
</table>
</form>
</center>
</body>
</html>

PHP 相关文章推荐
php中的实现trim函数代码
Mar 19 PHP
PHP Smarty生成EXCEL文档的代码
Aug 23 PHP
PHP CURL模拟登录新浪微博抓取页面内容 基于EaglePHP框架开发
Jan 16 PHP
php中的一些数组排序方法分享
Jul 20 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
PHP 前加at符合@的作用解析
Jul 31 PHP
深入理解PHP的远程多会话调试
Sep 21 PHP
PHP如何实现订单的延时处理详解
Dec 30 PHP
PHP实现十进制数字与二十六进制字母串相互转换操作示例
Aug 10 PHP
php实现的PDO异常处理操作分析
Dec 27 PHP
PHP学习记录之常用的魔术常量详解
Dec 12 PHP
PHP程序员必须知道的两种日志实例分析
May 14 PHP
不用数据库的多用户文件自由上传投票系统(3)
Oct 09 #PHP
用PHP+MySql编写聊天室
Oct 09 #PHP
如何开发一个虚拟域名系统
Oct 09 #PHP
PHP中对数据库操作的封装
Oct 09 #PHP
用DBSQL类加快开发MySQL数据库程序的速度
Oct 09 #PHP
一个简洁的多级别论坛
Oct 09 #PHP
用ODBC的分页显示
Oct 09 #PHP
You might like
php记录日志的实现代码
2011/08/08 PHP
php define的第二个参数使用方法
2013/11/04 PHP
thinkPHP框架RBAC实现原理分析
2019/02/01 PHP
简单实用的PHP文本缓存类实例
2019/03/22 PHP
window.addeventjs事件驱动函数集合addEvent等
2008/02/19 Javascript
HTML中Select不用Disabled实现ReadOnly的效果
2008/04/07 Javascript
ie和firefox不兼容的解决方法集合
2009/04/28 Javascript
javascript AutoScroller 函数类
2009/05/29 Javascript
关于COOKIE个数与大小的问题
2011/01/17 Javascript
动态的改变IFrame的高度实现IFrame自动伸展适应高度
2012/12/28 Javascript
JQuery中DOM加载与事件执行实例分析
2015/06/13 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
原生javascript+css3编写的3D魔方动画旋扭特效
2016/03/14 Javascript
微信小程序中子页面向父页面传值实例详解
2017/03/20 Javascript
javascript修改浏览器title方法 JS动态修改浏览器标题
2017/11/30 Javascript
javascript按顺序加载运行js方法
2017/12/01 Javascript
详解webpack多页面配置记录
2018/01/22 Javascript
JavaScript fetch接口案例解析
2018/08/30 Javascript
在Node.js下运用MQTT协议实现即时通讯及离线推送的方法
2019/01/24 Javascript
NodeJs 模仿SIP话机注册的方法
2019/06/21 NodeJs
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
Vue实现简单的留言板
2020/10/23 Javascript
jQuery实现容器间的元素拖拽功能
2020/12/01 jQuery
[09:59]DOTA2-DPC中国联赛2月7日Recap集锦
2021/03/11 DOTA
Python2.7读取PDF文件的方法示例
2017/07/13 Python
python自动化脚本安装指定版本python环境详解
2017/09/14 Python
Python分支结构(switch)操作简介
2018/01/17 Python
python爬取淘宝商品销量信息
2018/11/16 Python
解锁canvas导出图片跨域的N种姿势小结
2019/01/24 HTML / CSS
给老婆的保证书范文
2014/04/28 职场文书
核心价值观演讲稿
2014/05/13 职场文书
教师自我剖析材料
2014/09/29 职场文书
初中生毕业评语
2014/12/29 职场文书
入党自传范文2015
2015/06/26 职场文书
党员干部学习心得体会
2016/01/23 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书