不用数据库的多用户文件自由上传投票系统(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 相关文章推荐
如何给phpadmin一个保护
Oct 09 PHP
php number_format() 函数通过千位分组来格式化数字的实现代码
Aug 06 PHP
php实现telnet功能示例
Apr 08 PHP
教你如何用php实现LOL数据远程获取
Jun 10 PHP
destoon各类调用汇总
Jun 20 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
PHP中应该避免使用同名变量(拆分临时变量)
Apr 03 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
Apr 01 PHP
基于PHP制作验证码
Oct 12 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
深入理解PHP+Mysql分布式事务与解决方案
Dec 03 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
一个简单的自动发送邮件系统(一)
2006/10/09 PHP
php自动适应范围的分页代码
2008/08/05 PHP
PHPMYADMIN导入数据最大为2M的解决方法
2012/04/23 PHP
php中判断数组是一维,二维,还是多维的解决方法
2013/05/04 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
jQuery实现网站添加高亮突出显示效果的方法
2015/06/26 Javascript
Jquery插件之Fancybox丰富的弹出层效果附源码下载
2015/12/02 Javascript
JS组件系列之Bootstrap table表格组件神器【终结篇】
2016/05/10 Javascript
Bootstrap开发实战之响应式轮播图
2016/06/02 Javascript
AngularGauge 属性解析详解
2016/09/06 Javascript
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
js图片上传的封装代码
2017/08/01 Javascript
从setTimeout看js函数执行过程
2017/12/19 Javascript
详解如何在React组件“外”使用父组件的Props
2018/01/12 Javascript
vue使用Element组件时v-for循环里的表单项验证方法
2018/06/28 Javascript
javascript自定义日期比较函数用法示例
2019/07/22 Javascript
JS面向对象实现飞机大战
2020/08/26 Javascript
python使用xmlrpc实例讲解
2013/12/17 Python
Python使用redis pool的一种单例实现方式
2016/04/16 Python
python开发环境PyScripter中文乱码问题解决方案
2016/09/11 Python
Python中的字符串操作和编码Unicode详解
2017/01/18 Python
python+opencv像素的加减和加权操作的实现
2019/07/14 Python
Django如何实现网站注册用户邮箱验证功能
2019/08/14 Python
将python依赖包打包成window下可执行文件bat方式
2019/12/26 Python
Python warning警告出现的原因及忽略方法
2020/01/31 Python
社区版pycharm创建django项目的方法(pycharm的newproject左侧没有项目选项)
2020/09/23 Python
让你相见恨晚的十个Python骚操作
2020/11/18 Python
英国家庭和商业健身器材购物网站:Fitness Options
2018/07/05 全球购物
英文版区域经理求职信
2013/10/23 职场文书
给女儿的表扬信
2014/01/18 职场文书
电力培训心得体会
2014/09/02 职场文书
售票员岗位职责
2015/02/15 职场文书
雷锋观后感
2015/06/10 职场文书
2016年暑期社会实践活动总结报告
2016/04/06 职场文书
家长必看:义务教育,不得以面试 评测等名义选拔学生
2019/07/09 职场文书