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

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


主要功能:


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


(2)          多种excle表的导入


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


(4)          最基本的权限管理


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


项目的不足:


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


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






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


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


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




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


最最最最简单的权限管理


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


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

<!--管理员注册-->

<divid="top-icon">

{ifcondition="$role eq 1"}

  <div class="userHeadtop-icon">

    <a href="__URL__/register/role/3" title="用户注册"><imgsrc="__PUBLIC__/Images/xxx></a>

  </div>

  <div class="userHeadtop-icon">

    <a href="__URL__/register/role/2" title="管理员注册"><imgsrc="__PUBLIC__/Images/xxx" ></a>

  </div>

  <div class="top-icon">

    <a href="__URL__/register/role/1"title="超级管理员用户注册"><imgsrc="__PUBLIC__/Images/xxx "></a>

  </div>

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

  <div class="userHeadtop-icon">

    <a href="__URL__/register/role/3" title="用户注册"><img src="__PUBLIC__/Images/xxx"></a>

  </div>

  <div class="userHeadtop-icon">

    <a href="__URL__/register/role/2" title="管理员注册"><imgsrc="__PUBLIC__/Images/xxx" ></a>

  </div>   

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

退出按钮:

<a href="__URL__/quit"οnclick='return del();'>

<img src="__PUBLIC__/Images/xxx">

</a>

Js:

<script>

function del(){

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

    return true;

  }else {

    return false;

  }

}

</script>

控制器中:

function quit(){

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

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

 }

模态框多图片上传:

<form action="__URL__/upload" method="POST"enctype="multipart/form-data">

<div class="modal-body" style="height: auto;width: 100%;">                      

  <divclass="col-md-3 chooseImg">

    <table>

     <select name="select[]" id="" class="form-control"> //此处为选择上传类型

      <option value="1">竞赛类</option>

      <option value="2">非竞赛类</option>                             	 </select>

     <input type="file"class="form-control" name="file[]">

     <input type="text" class="form-control" placeholder="学号" name="number[]">

     <input type="text" class="form-control" placeholder="证书名称" name="Name_project[]">

     <input type="text" class="form-control" placeholder="证书等级" name="grade[]">

     <input type="text" class="form-control" placeholder="取得时间" name="time[]">

     <input type="text" class="form-control" placeholder="指导老师" name="teacher[]">

    </table>

   </div>

  <!--以下重复7个跟上面一样的div,同时上传8张图片以及对应信息,用select实现上传类型的选择 -->

</form>

以下为接收数据代码:

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

function upload(){

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

      echo "<script type='text/javascript'>alert('参数错误!');</script>";

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

      echo "<script type='text/javascript'>

      window.location.href = '$URL';

      </script>";

      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 "<scripttype='text/javascript'>alert('上传错误');</script>";

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

           echo "<scripttype='text/javascript'>

           window.location.href = '$URL';

           </script>";

           exit;

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

          $info =  $upload->getUploadFileInfo();

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

          $count = count($info);

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

       }

 

//for循环,实现上传

	for($i=0;$i<$count;$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 '<scriptlanguage="javascript">alert("'.$name.'大小超过300k'.'");</script>';

                continue;

         }else{

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

         echo '<scriptlanguage="javascript">alert("'.$name.'相关信息不全'.'");</script>';

            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: 其他功能会陆续上传的!
大家一起学习吧!有问题或是建议欢迎交流!
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业 PHP后端项目整站源码毕业设计期末大作业

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值