首页 > 编程技术 > php

[原创]php+ajax实现模拟Win文件管理系统九

发布时间:2016-11-25 17:35

//

本站原创:www.111cn.net

作者:drise1

QQ:271728967

//

接上面的.
 function Senddata(method,url,ReturnValue,Action){  //保存数据

   xmlhttp.open(method,url,true); 

   xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
  
   xmlhttp.setRequestHeader("Cache-Control","no-cache"); //不缓存

   if(ReturnValue !=null){

   xmlhttp.onreadystatechange=ReturnValue;

   }   

   xmlhttp.send(null);
   if(Action == 'mkdir')  //如果是创建文件夹就刷新窗口
   {
    window.location.reload();


   } 

 }


 function ReturnValue(){//返回值

  if(xmlhttp.readystate != 4 || xmlhttp.status != 200){
   document.getElementById("t0").innerHTML="<div id='info' style='position:absolute;  height:20px; z-index:1; left: 245px; top: 121px;display:block'>正在发送...</div>";
 }

  if( xmlhttp.readystate == 4 || xmlhttp.status == 200 ){

   document.getElementById("t0").innerHTML="<div id='info' style='position:absolute;  height:20px; z-index:1; left: 245px; top: 121px;display:block '>"+xmlhttp.responseText+"</div>";
 } 

 setInterval("func()",3000);//设置3000秒延迟
 }

 function func(){
  ob=document.getElementById('info');

    ob.style.display = 'none';

 }

下面为删除

 function del(obj){  


  if(confirm("确实要删除\""+obj+"\"吗?","","")){   


   CreateAjax();   


   var Delurl="rename.php?path="+encodeURI(obj.replace("/","\/"))+"&action=del&rd="+Math.random();


    xmlhttp.open("GET",Delurl,true);   


    xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");   


    xmlhttp.setRequestHeader("Cache-Control","no-cache");


    xmlhttp.onreadystatechange=function(){


     if (xmlhttp.readystate == 4 || xmlhttp.status == 200){ 


      var value=xmlhttp.responseText;


     if( value =='t' ){


      document.getElementById(obj).style.display="none";


     }else if( value =='fo'){


      alert("操作失败,请查看权限或文件夹不为空!foss!");


     }else if( value =="ff"){


      alert("操作失败,请查看权限!");


     }else{


      alert("操作失败,请查看权限或文件夹不为空!!");


     } 


     


    }


    }


    xmlhttp.send(null);


   }


 } 


  

 function Createfolder(){//创建文件夹


  document.getElementById('t').style.display='block';


 }

 function Copy(path,tage){//复制文件


  var time  = new Date();


  var filepath ="filepath";


  time.setTime(time.getTime()+60000);


  if(tage == 'c'){


   document.getElementById(path).style.filter = "Alpha(Opacity=50,style=0);";//设置透明度让用户感觉是文件被剪切了,


   path=path+"|";


   }


  document.cookie = filepath+"="+path+"; expires="+time.toGMTString()+"; path=/";//由于要用到全局变量所以用了cookie保存功能,


      


 }


 


 function Past(cookname,currentpath){//取得剪板中的文件 


  if(cookname == "" ){return false;}   


  var cookies  = document.cookie;


  if(cookies == ""){ alert("剪切贴为空!"); return false; }


  var arrar  = cookies.split("; ");


  for(var i=0;i<=arrar.length-1;i++){


   if( arrar[i].indexOf(cookname)!= -1 ){


    returnvalue=arrar[i].split("=");


    Pastfile(returnvalue[1],currentpath);


   }


  }


  


 }


 


 function Pastfile(p_file,p_path){// 粘贴文件


  CreateAjax();


  var name=p_file.substring(p_file.lastIndexOf("/")+1);


  var url="rename.php?path="+encodeURI(p_path.replace("/","\/"))+"&nname="+name+"&copypath="+p_file+"&action=past&rd="+Math.random();


  Senddata('GET',url,Pastreturn,'');


  


 }


 


 function Pastreturn(){  


  if(xmlhttp.readystate == 4 || xmlhttp.status == 200){


   window.location.reload();


  }


 }


 

这段时间比较忙所以段了一段时间,今天抽点时间把它写完,下面我继续讲js.js文件重命名函数

 function edit(e,path){


  var text=e.innerHTML;


  var eT=document.createElement("input");//这里是根据用户单击情况重写文件名


  e.innerHTML="";


  e.appendChild(eT);


 eT.value=text;


  eT.select();


  e.onclick="";


  eT.onblur=function(){        


  CreateAjax();


  if(text == this.value){


    e.innerHTML=this.value;


    e.onclick=function(){edit(this,path)};


    return false;


  }else{  


    e.innerHTML=this.value;


    Re_name(path,this.value,e);   


    e.onclick=function(){edit(this,path)};


  }


  };  


 }

上面了一dom+JS对文件进行完成,操作.

 function CreateAjax(){//这个函数就不多说了,己经讲过多次了.


  try { xmlhttp = new XMLHttpRequest();}


   catch (e){


  try { xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");}


   catch (e2){


  try { xmlhttp = new ActiveXObject("MSXML2.XMLHTTP"); }


   catch(e3){ xmlhttp = false; }


  }


  }          


  if( !xmlhttp){alert('对不起,你正在使用的浏览不支持AJAX!');return false;}


  }

function Re_name(o_name,n_name,e){  //这里重命名了.

   var name=o_name.replace(/.*\/(.+)$/i,"$1");

   if(name.match(/^\w{1,255}\.\w{1,8}$/i)){//用正则判断文件名的合法性.

   if(!n_name.match(/^\w{1,250}\.\w{1,8}$/i)){
    
     e.innerHTML=name;

     document.getElementById("t").innerHTML="<div id='info' style='position:absolute;  height:20px; z-index:1; left: 245px; top: 121px;display:block'>对不起,不能修改文件的扩展名...</div>";
         
     setInterval("func()",3000);  
     
     return false;

   }

   }else if(name.match(/^\w{1,255}$/i)){

    if(!n_name.match(/^\w{1,250}$/i)){

     e.innerHTML=name;
     
     document.getElementById("t").innerHTML="<div id='info' style='position:absolute;  height:20px; z-index:1; left: 245px; top: 121px;display:block'>对不起,不能把文件夹重命名为文件名...</div>";

     setInterval("func()",3000);
     return false;

   }

   }else{
      alert('非法操作');

     e.innerHTML=name;

     return false;
   }
   var url="rename.php?path="+encodeURI(o_name.replace("/","\/"))+"&nname="+encodeURI(n_name)+"&rd="+Math.random();

   Senddata('GET',url,ReturnValue,null); //了送给rename.php


 }
 

 

2008-01-24 00:00:00

//

本文由本站原创:www.111cn.net

作者:www.111cn.net

转载请注明:来自www.111cn.net

qq:271728967

//

早起一起突然看到,我的网站有人在恶心乱搞,为了防止这种事情我想了一个办法那就是封用户的IP了.

首页我们来建数据库:

CREATE TABLE `su_lockip` (
  `id` int(4) NOT NULL auto_increment,
  `lockip` varchar(1024) default NULL,
  PRIMARY KEY  (`id`)
)

下页来创建一个封文件的页面,主要是用户写入IP以"|"分开,这个页面就不多写了,我就简单的写一下,入库代码$UlockIp=$_POST['z']?$_POST['z']:''; 
 if(empty($UlockIp)){
  exit("<script>alert('对不起,你输入的信息有误!');history.back();</script>");
 }
 $sql="update su_lockip set lockip='$UlockIp'";
 if(mysql_query($sql)){
  exit("<script>alert('锁定成功!');history.back();</script>");
 }else{
  exit("<script>alert('对不起,你输入的信息有误!');history.back();</script>");
 }

就这么简单,最后就是进行锁定的了.下面代码是根据数据中是否存用户IP,如果在就提示被KILL了.代码如下:

function lock_user_ip(){
 $Usql =mysql_query("select * from su_lockip");
 $Urs =mysql_fetch_array($Usql);
 $UlockIp=$Urs['lockip'];
 $ClockIp=$this->get_real_ip();
 $Iplist =explode('|',$UlockIp);
 if(in_array($ClockIp,$Iplist)){
  exit('sorry system lock your IP');
 }
 }
 
 function get_real_ip(){//这段代码来是互联网.
   $ip=false;
   if(!empty($_SERVER["HTTP_CLIENT_IP"])){
    $ip = $_SERVER["HTTP_CLIENT_IP"];
   }
   if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
    if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
    for ($i = 0; $i < count($ips); $i++) {
     if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])) {
      $ip = $ips[$i];
      break;
     }
    }
   }
   return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
 }

哈哈写完了就这么简单,没有进行安全过滤处理.

[原创]php+ajax实现模拟Win文件管理系统

//

本教程由本站原创,转载请注明来处

作者:www.111cn.net

邮箱:drise@163.com

QQ:271728967

//

最后一个文件就是js.js文件了.

var xmlhttp=false;
 function aa(obj)
 {
  obj.className='aa';
  obj.onblur=function(){obj.className='bb';}
 }
 function resizepic(thispic) {
  //$('imgbox').style.width = $('divbox').clientWidth;
  if(thispic.height>55||thispic.width>55)thispic.style.zoom=56/(thispic.height>thispic.width?thispic.height:thispic.width);

 }

 function resizeimg(thispic){

  if(thispic.height>100||thispic.width>100)thispic.style.zoom=180/(thispic.height>thispic.width?thispic.height:thispic.width);
 }

上面这些是对图片进行缩放的.不过在fox也像有一点问题.

function Losefocus(obj,path){ //这里是创建文件时判断文件合法性,然后发带参数发送给rename.php文件,

 var ivalue=obj.value; 

 if( 'New folder' == ivalue || !ivalue.match(/^\w{1,255}$/i)){

  alert('输入合法文件夹名!');

  obj.select();

  return false;

 }else{  
  CreateAjax();
  var url="rename.php?path="+encodeURI(path.replace("/","\/"))+"&nname="+encodeURI(obj.value)+"&action=mkdir&rd="+Math.random();


  Senddata('GET',url,ReturnValue,'mkdir');


  document.getElementById('t1').innerHTML=ivalue;


  window.location.reload();


 }


}

下面还有今天就不写了,手都打痛了.明天接着来.

标签:[!--infotagslink--]

您可能感兴趣的文章: