如何写php项目的开发思路,PHP开发的一个小小项目,记录下实现思路(附上实现功能的示例代码)(一)...

第一次做的一个小小项目(用TP实现的)

主要功能:

(1)          图片的导入以及每张图片相应的信息

(2)          多种excle表的导入

(3)          excle表的导出(只导出选中部分)

(4)          最基本的权限管理

(5)          最基本的翻页,查询,修改,删除等

项目的不足:

(1)对数据库的设计不熟悉,设计不合理(有更好的设计方式)

(2)由于对前端的掌握不够,与前端开发人员合作不是非常好,并未能很好地用ajax实现各功能

希望能在寒假前交予测试并争取早日交付,寒假准备重新设计数据库,把部分功能重做。

下面把一些实现逻辑和示例代码贴在下面,一方面作为一种记录,另一方面希望需要的人可以看看。

希望大牛们或更有经验的人能提供建议,谢谢!

以下是主功能的实例代码:

最最最最简单的权限管理

(功能是判断是否为超级管理员或是管理员,以显示相应注册按钮)

用数据库中的一个字段判断,数据库的设置就不贴了,以下是页面的判断代码:

{ifcondition="$role eq 1"}

{elseifcondition="$role eq 2"/} // 此处最后一定要加/不然会出错,当时找了好久的错误

xxx

{/if}

PS:注册功能就不贴了,最简单的添加数据库

退出按钮:

xxx

Js:

function del(){

if(confirm("是否退出")) {

return true;

}else {

return false;

}

}

控制器中:

function quit(){

session(null);//清空所有session信息

redirect(U('admin/Index/index'),0,'重新登录');

}

模态框多图片上传:

以下为接收数据代码:

//下面第一部分的代码为判断是否缺少信息或是被工具改过参数,如果是则提示信息并返回

function upload(){

if(!$_POST['select'] || !$_POST['number'] || !$_POST['time'] ||!$_POST['grade'] || !$_POST['teacher'] || !$_POST['Name_project']){

echo "";

$URL=U('admin/TheList/index');

echo "

window.location.href = '$URL';

";

exit;

}

//接收数据,数据类型为数组

$select = $_POST['select'];//上传的证书是比赛类型或是非比赛

$number = $_POST['number'];//相关学号

$time = $_POST['time'];//取得的时间

$grade = $_POST['grade'];//证书等级

$teacher = $_POST['teacher'];//指导老师

$Name_project = $_POST['Name_project'];//证书名称

//以下代码为判断接收的各类型数据项是否匹配,8张图片下面的信息是否填全,不全则提示

$count2=0;

$count3=0;

$count4=0;

$count5=0;

$count6=0;

//循环判断数组中有效数据的个数,直接用count的话一直为8,因为前台有八个输入框,就算没输入也会有8个,其中可能部分数据为空

foreach($number as $val){

if($val!='')

$count2++;

}

foreach($time as $val){

if($val!='')

$count3++;

}

foreach($grade as $val){

if($val!='')

$count4++;

}

foreach($teacher as $val){

if($val!='')

$count5++;

}

foreach($Name_project as $val){

if($val!='')

$count6++;

}

if($count2!=$count3 || $count2!=$count4 ||$count2!=$count5 || $count2!=$count6 || $count3!=$count4 || $count3!=$count5 ||$count3!=$count6 || $count4!=$count5 || $count4!=$count6 || $count5!=$count6){

$this->error('输入的信息不匹配');

}

/******************保存在服务器上********************/

import('ORG.Net.UploadFile');//导入上传类

$upload= new \UploadFile();// 实例化上传传类

$upload->maxSize = 3145728 ;// 设置附件上传大小

$upload->allowExts = array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型

$upload->savePath= './Public/Uploads/';// 设置附件上传目录

if(!$upload->upload()) {// 上传错误提示错误信息

echo "alert('上传错误');";

$URL=U('admin/TheList/index');

echo "

window.location.href = '$URL';

";

exit;

}else{ //上传成功获取上传文件信息

$info = $upload->getUploadFileInfo();

//多图片一次性上传,返回一个二维数组

$count = count($info);

//$_FILES['img']['tmp_name']; 上传 临时文件的绝对路径

}

//for循环,实现上传

for($i=0;$i

$select1 = $select[$i]; //接收各个数组同一位置的信息

$number1 = $number[$i];

$time1 = $time[$i];

$grade1 = $grade[$i];

$teacher1 = $teacher[$i];

$Name_project1 = $Name_project[$i];

$datasize =$info[$i]["size"]; //获取当前上传图片的大小,用于条件判断

$name = $info[$i]["name"]; //用于提示信息

if($datasize > 1024*300){

echo 'alert("'.$name.'大小超过300k'.'");';

continue;

}else{

if(!($select1 &&$number1 && $time1 && $grade1 && $teacher1 &&$Name_project1 && $info[$i])){

echo 'alert("'.$name.'相关信息不全'.'");';

continue;

}

switch($select1){

case‘1’: //此处为导入数据库,个人的数据库设置不同

//思路:把图片的路径放在数据库,加上存放的文件名,取出的时候需要在前面加__PUBLIC__

不能一开始就把__PUBLIC__存在数据库中,TP中是解析这个的,放在数据库取出后系统将其当作变量,不会解析

//实例:(一些安全性判断等这里就不写了,只是举个栗子)

$updata['Filecopy_address']="Uploads/".$info[$i]["savename"];

$updata['Name_project']=$Name_project1;

$updata['Name_project']=$Name_project1;

$updata['Time1']=$time1;

$updata['Techer_guidance']=$teacher1;

$updata['Grade2']=$grade1;

$model->where($where)->save($updata);

break;

case‘2’:

//如上

}//endswitch

PS: 其他功能会陆续上传的!

大家一起学习吧!有问题或是建议欢迎交流!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值