Location: PHPKode > projects > PHPExplorer > modules/console.php
<?
require_once("../include/varsfuncs.php");
$head="PHP-Explorer - Console (Pré-Alpha) - &lt;hide@address.com>\r\n    &copy;2002 TatouBouchon Software\r\n\r\n";
$man['cls']="\r\nSyntaxe : CLS [[/?]|[-h]] [-nohead] \r\nEfface la console\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [-nohead]  : Ne pas afficher les en-têtes\r\n   [-novars]  : Efface les variables systèmes.\r\n\r\n";
$man['exit']="\r\nSyntaxe : EXIT [[/?]|[-h]] \r\nQuitter la console et retourner au menu de connection\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n\r\n";
$man['mkdir']="\r\nSyntaxe : MKDIR [Lecteur:][Dossier] [[/?]|[-h]]\r\nCrée si possible le dossier [Dossier]. \r\nSi [Lecteur:] n'est pas précisé, il est remplacé par le dossier actuel.\r\nOptions :\r\n\r\n   [/?|-h]   : Affiche l'aide\r\n   [Lecteur:] : Lecteur et/ou dossier source\r\n   [-Dossier] : Nom du dossier à créer\r\n\r\n";
$man['set']="\r\nSyntaxe : SET [Variable][=Valeur] [[/?]|[-h]] [-clear] [-list]\r\nDéfinit et affiche les variables console.\r\nSi aucune valeur n'est fournie, Set affiche le contenu de la variable.\r\nDans toutes les commandes, %var% est remplacé par la variable définie par Set.\r\nOptions :\r\n\r\n   [/?|-h]   : Affiche l'aide\r\n   [-clear]  : Purger les variables\r\n   [-list]   : Liste des variables enregistrées\r\n\r\n";
$man['echo']="\r\nSyntaxe : ECHO [Texte|%Variables%] [[/?]|[-h]] \r\nAffiche le texte [Texte] et le conteu des variables [%Variables%].\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [Texte] : Texte à afficher\r\n   [%Variables%]  : Contenu des variables console.\r\n\r\n";
$man['graph']="\r\nSyntaxe : GRAPH [Skin] [[/?]|[-h]] \r\nDémarre le mode graphique.\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [Skin] : Utilise le skin [Skin] si il existe.\r\n\r\n";
$man['skin']="\r\nSyntaxe : SKIN [Skin] [-list] [[/?]|[-h]] \r\nAffiche la liste des skins.\r\nSi [Skin] est fourni, affiche les informations sur le skin.\r\nSi [Skin est absent ou si [-list], affiche la liste des skins.\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [Skin]     : Affiche les infos du skin [Skin].\r\n   [-list]   : Affiche la liste des skins\r\n\r\n";
$man['system']="\r\nSyntaxe : SYSTEM [Commande] [[/?]|[-h]] \r\nExécute la commande [Commande] sur le serveur et affiche le résultat.\r\nSi [Skin] est fourni, affiche les informations sur le skin.\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n\r\n";
$man['chdir']="\r\nSyntaxe : CD [Lecteur:][Dossier] [[/?]|[-h]] \r\nAller dans le dossier [Dossier] ou affiche le dossier en cours.\r\nATTENTION : Les ESPACES doivent être remplacés par des astérisques (*)\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [Lecteur:] : Dossier ou lecteur source\r\n   [Dossier]  : Dossier de destination. Les variables doivent être en minuscule\r\n\r\n";
$man['base64']="\r\nSyntaxe : BASE64 [String] [[/?]|[-h]] \r\nEncode le texte [String] en base 64\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [String]  : Texte à encoder\r\n\r\n";
$man['dbase64']="\r\nSyntaxe : DBASE64 [String] [[/?]|[-h]] \r\nDécode si possible le texte [String]\r\nOptions :\r\n\r\n   [/?|-h]    : Affiche l'aide\r\n   [String]   : Chaîne de texte encodée en base64\r\n\r\n";

if($text){
  $text=base64_decode($text);
  $text.="$dir\$>".htmlentities($cmd)."\r\n";
}else{$text=$head;}
if($cmd){
  $cmds=explode(" ",chop($cmd)); $cmd=strtolower($cmds[0]); $pm=Array(); for($i=1;isset($cmds[$i]);$i++)
  $pm[]=chop($cmds[$i]);
 if($vars){
  foreach($vars as $key=>$val){
   for($i=0;isset($pm[$i]);$i++){ $pm[$i]=str_replace("%$key%",$val,$pm[$i]); $pm[$i]=str_replace("%".strtolower($key)."%",$val,$pm[$i]);
    $pm[$i]=str_replace("<$key>",$val,$pm[$i]); $pm[$i]=str_replace("<".strtolower($key).">",$val,$pm[$i]);}
  }
 }
  if($cmd=="cls"||$cmd=="clear"){
     for($k=0;$pm[$k];$k++){if($pm[$k]=="/?"||$pm[$k]=="-h"||$pm[$k]=="/h") $help=1; 
                                                if($pm[$k]=="-nohead") $head=0;
                                                if($pm[$k]=="-novars") unset($vars);
     }
     if($help){
       $text.=$man['cls'];
     }else{
       if($head) $text=$head; else $text="\r\n";
     }
  }elseif($cmd=="system"||$cmd=="exec"){
   if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h"){
     $text.=$man['system'];
   }else{
    if($pm[0]){
     for($i=0;isset($pm[$i]);$i++) $parms.=$pm[$i];
     @exec(@escapeshellcmd($parms),$r); $r=@implode("\r\n",$r);
     $text.="$r\r\n\r\n";
    }else{
     $text.="Entrez la commande a éxécuter sur le serveur\r\n\r\n";
    }
   }
  }elseif($cmd=="base64"){
     if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h"){
       $text.=$man['base64'];
     }else{
    $lol=""; foreach($pm as $ss) $lol.=" ".$ss;
    $lol=trim($lol); if($lol){
     $text.="\r\nEncodage en base64...\r\n*****************************\r\n"hide@address.com($lol)."\r\n*****************************\r\n\r\n";
    }else{
     $text.="Entrez le texte à encoder en base 64.\r\n\r\n";
    }}
  }elseif($cmd=="dbase64"){
     if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h"){
       $text.=$man['dbase64'];
     }else{
    $lol=""; foreach($pm as $lol) $lol.=" ".$lol;
    $lol=trim($lol); if($lol){
     $text.="\r\nDécodage base64...\r\n*****************************\r\n"hide@address.com($lol)."\r\n*****************************\r\n\r\n";
    }else{
     $text.="Entrez le texte à décoder.\r\n\r\n";
    }}
  }elseif($cmd=="exit"||$cmd=="quit"){
     if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h"){
       $text.=$man['exit'];
     }else{
       header("Location: $path/login.php?logout=1&rand=".uniqid(5)."&sup=Q");
     }
  }elseif($cmd=="mkdir"){
     for($k=0;$pm[$k];$k++){if($pm[$k]=="/?"||$pm[$k]=="-h"||$pm[$k]=="/h") $help=1;}
     if(!$pm[0]) $help=1;
     if($help){
       $text.=$man['mkdir'];
    }else{
       if(@basename($pm[0])=="./") $d=$dir.$pm[0]; else $d=$pm[0];
       if(!@is_dir($d)){
         $g=@mkdir($d,0777);
         if($g)
           $text.="Le dossier \"$d\" a été créé\r\n\r\n";
         else
           $text.="Impossible de créer le dossier \"$d\" !\r\n\r\n";
       }else{
      $text.="Le dossier \"$d\" existe déjà !\r\n\r\n";
      }
   }
  }elseif($cmd=="graph"){
   if($pm[0]=="/?"||$pm[0]=="-h"||$pm[0]=="/h"){
    $text.=$man['graph'];
   }else{
    if($pm[0]&&@is_dir("$instp/skins/".trim($pm[0]))){
      setCookie("sk",trim($pm[0]));
    }else{
      setCookie("sk",$skin_defaut);
    }
    header("Location: ".$path."index.php?dir=$dir");
    die();
   }
  }elseif($cmd=="skin"){
   if($pm[0]=="/?"||$pm[0]=="-h"||$pm[0]=="/h"){
    $text.=$man['skin'];
   }else{
    if(!$pm[0]||strtolower($pm[0])=="-list"){
      $text.="Liste des skins disponibles :\r\n";
      $z=opendir($instp."/skins"); readdir($z); readdir($z);
      while($d=readdir($z)){
       if(@is_dir("$instp/skins/".$d)) $text.="  - $d\r\n";
      }
      $text.="\r\n\r\n";
    }else{
     if(!@is_dir("$instp/skins/".$pm[0])){
      $text.="Ce skin n'existe pas. Tapez \"SKINS\" pour en avoir la liste.\r\n\r\n";
    }else{
     $inf=@implode('',@file("$instp/skins/".$pm[0]."/Infos.skin"));
     if(!$inf){
      $text.="Ce skin ne contient pas d'informations\r\n\r\n";  
     }else{
      $text.="Infos sur le skin : \r\n\r\n$inf\r\n\r\n";
     }
    }
   }
  }
  }elseif($cmd==base64_decode("ZWdn")){
     $text.=base64_decode("DQogWW91cGkgISB2b3VzIGF2ZXogdHJvdXbpIHVuIGVnZyBkZSBQSFAtRXhwbG9yZXIgISANCiBNYWlzIGlsIHkgZW4gYSBkJ2F1dHJlcy4uLg0KDQo=");
  }elseif($cmd=="set"){
     $clear=0;
     for($k=0;$pm[$k];$k++){if($pm[$k]=="/?"||$pm[$k]=="-h"||$pm[$k]=="/h") $help=1; elseif($pm[$k]=="-clear") $clear=1; elseif($pm[$k]=="-list") $list=1; }
     if($help){
        $text.=$man['set'];
     }elseif($clear){
       unset($vars); $text.="\r\n";
     }elseif($list){
       if(count($vars)){
       $text.="\r\nVariables définies :\r\n\r\n";
       foreach($vars as $key=>$value) $text.="   $key = $value\r\n";
       $text.="\r\n";
       }else{$text.="Aucunne variable définie !\r\n\r\n";}
     }elseif($pm[0]){ for($i=0;isset($pm[$i]);$i++) $vv.=$pm[$i].' '; $vv=chop($vv);
       $p=explode("=",$vv,2); if(isset($p[1])){ $text.="\r\n"; $vars[strtolower($p[0])]=$p[1]; }else $text.=$p[0]." => ".$vars["$p[0]"]."\r\n\r\n";
     }else{
       $text.="Aucune variable à définir !\r\n\r\n";
     }
  }elseif($cmd=="echo"||$cmd=="print"||$cmd=="coco"){
    $help=0;
    for($i=0;isset($pm[$i]);$i++) if($pm[$i]=="/?"||$pm[$i]=="-h"||$pm[$i]=="/h") $help=1;
    if($help){
       $text.=$man['echo'];
    }else{
     for($i=0;isset($pm[$i]);$i++){
       if(substr($pm[$i],0,1)=='"') $pm[$i]=substr($pm[$i],1);
       if(substr($pm[$i],-1)=='"') $pm[$i]=substr($pm[$i],0,strlen($pm[$i])-1);
       $text.=" ".$pm[$i];
     }$text.="\r\n\r\n";
    }
  }elseif(substr($cmd,1,1)==":"&&@chdir(substr($cmd,0,2)."/")){
     $text.="\r\n"; $dir=substr($cmd,0,2)."/";
  }elseif($cmd=="cd"||$cmd=="chdir"||$cmd=="go"){
     if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h"){
       $text.=$man['cd'];
     }else{
     @chdir($dir); if(substr($pm[0],0,1)=='"') $pm[0]=substr($pm[0],1);
     if(substr($pm[0],-1)=='"') $pm[0]=substr($pm[0],0,strlen($pm[0])-1);
     if(substr($pm[0],-1)=="/") $pm[0]=substr($pm[0],0,strlen($pm[0])-1);
     if(!$pm[0]){ $text.=strtoupper($dir)."\r\n\r\n";
     }elseif(!@is_dir(str_replace("*"," ",$pm[0]))&&!@is_dir($dir.str_replace("*"," ",$pm[0]))){
        $text.="Le dossier \"".str_replace("*"," ",$pm[0])."\" n'existe pas ou plus !\r\n\r\n";
     }elseif(!@chdir(str_replace("*"," ",$pm[0]))&&!@chdir($dir.str_replace("*"," ",$pm[0]))){
        $text.="Impossible d'aller dans \"".$pm[0]."\". Permission refusée.";
     }else{ @chdir(str_replace("*"," ",$pm[0])); $dir=getcwd(); $text.="\r\n"; }}
  }elseif($cmd=="list"||$cmd=="dir"){
     $z=@opendir($dir);
      if($z){
        readdir($z); readdir($z); $units=Array(0=>"By",1=>"Kb",2=>"Mb",3=>"Gb",4=>"Tb");
        $text.="\r\n   Contenu de ".strtoupper($dir)." : \r\n";
        while($d=readdir($z)){ $i=0;
	   $ft=filetype($dir.$d);
         if(!is_dir($dir.$d)){
           $fs=filesize($dir.$d);
           while($fs>=1000){ $fs=round($fs/1000,2); $i++;} $unit=$units[$i];
         }else{$fs=""; $unit="";}
         $d=substr($d,0,15); while(strlen($d)<15) $d.=" ";
         $text.="\r\n	$d	$fs $unit			$ft";
        }
        $dts=disk_total_space($dir); $dfs=disk_free_space($dir); $dos=$dts-$dfs; $i=0;
        while($dfs>=1000){ $dfs=round($dfs/1000,2); $i++;} $unit1=$units[$i];    $i=0;
        while($dts>=1000){ $dts=round($dts/1000,2); $i++;} $unite=$units[$i];    $i=0;
        while($dos>=1000){ $dos=round($dos/1000,2); $i++;} $units=$units[$i];    $i=0;
        $text.="\r\n\r\n   Espace libre de ce dossier : $dfs $unit1\r\n   Espace utilisé dans le dossier : $dos $units\r\n";
        $text.="   Taille totale du disque en cours : $dts $unite \r\n\r\n";
      }else{
        $text.="Impossible de lire dans le dossier !\r\n\r\n";
      }
}elseif($cmd=="zdir"){
 $units=Array(0=>"By",1=>"Kb",2=>"Mb",3=>"Gb",4=>"Tb");
 if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h") $text.=$man["zdir"];
 elseif(!$pm[0]){
  $text.="Vous n'avez pas indiqué l'archive à afficher !\r\n\r\n";
 }elseif(!file_exists($dir.$pm[0])){
  $text.="Cette archive n'existe pas ! \r\n\r\n";
 }elseif(substr($pm[0],-4)!=".zip"){
  $text.="Ce fichier n'est pas une archive ZIP !\r\n\r\n";
 }else{
  require("$instp/include/ziplib.php");
  $z=New Zip($pm[0]);
  $l=$z->listContent();
  $text.="\r\n   Contenu de l'archive ".$pm[0]." : \r\n";
  $i=0; $ffs=filesize($dir.$pm[0]); while($ffs>=1000){$fss=round($fss/1000,2); $i++;} $un=$units[$i];
  for($i=0,$j=0,$k=0;$l[$i];$i++,$j=0,$k=0){
   $d=$l[$i]["filename"]; $fs=$l[$i]["size"]; $fc=$l[$i]["compressed_size"];
   $ratio=@intval($fc/($fs/100)+0,01)." %";
   while($fs>=1000){ $fs=round($fs/1000,2); $j++;} $unit=$units[$j];
   while($fc>=1000){ $fc=round($fc/1000,2); $k++;} $unit2=$units[$k];
   $d=substr($d,0,15); while(strlen($d)<15) $d.=" "; $tdir=$l[$i][folder]; if(!$tdir) $tdir="./";
   $text.="\r\n	Nom du fichier	Taille	Zippé	Ratio	Dossier";
   $text.="\r\n	=======================================================================";
   $text.="\r\n	$d	$fs $unit	$fc $unit2	$ratio	$tdir";
   $text.="\r\n	=======================================================================\r\n\r\n";
   $text.="   Taille totale de l'archive : $ffs $un\r\n\r\n";
  }
 }
}elseif($cmd=="rmdir"){
 if($pm[0]=="/?"||$pm[0]=="/h"||$pm[0]=="-h") $text.=$man["rmdir"];
 elseif(!$pm[0])
  $text.="Vous n'avez pas choisi de dossier à supprimer !\r\n\r\n";
 elseif($pm[1]!="JE_CONFIRME")
  $text.="Pour confirmer a suppression du dossier, entrez \"\$>Rmdir ".$pm[0]." JE_CONFIRME\"\r\n\r\n";
 elseif(!@is_dir($dir.$d))
  $text.="Attention : ".$pm[0]." n'est pas un dossier valide !\r\n\r\n";
 else{
  @delrep($pm[0]);
  if(!@is_dir($dir.$pm[0]))
    $text.="Le dossier ".$pm[0]." a été supprimé !\r\n\r\n";
  else
    $text.="Impossible de supprimer le dossier ".$pm[0]."\r\n\r\n";
 }
}elseif($cmd=="man"||$cmd=="manuel"||$cmd=="maman"||$cmd=="help"||$cmd=="aide"||$cmd=="?"){
  if(!$pm[0]||$pm[0]=="man"||$pm[0]=="/?"||$pm[0]=="-h"||$pm[0]=="/h"){
   $text.="Pour savoir comment utilisez une commande, tapez HELP [Commande]\r\nChoisissez une page du manuel :\r\n";
   $br=1;
   foreach($man as $key=>$val){
     $br==1 ? $br=0 : $br=1;
     if($br) $bb="\r\n"; else $bb="\t";
     $text.="  - $key   $bb";
   }
   $text.="\r\n\r\n";
 }elseif($man[$pm[0]]){
   $text.=$man[$pm[0]];
 }else{
   $text.="Cette page de manuel n'existe pas !\r\n\r\n";
}
  }else{
     $text.="Commande invalide ou erreur de syntaxe.\r\n\r\n";
  }
}else{if($text!=$head)$text.="\r\n";}
$dir=str_replace("\\","/",strtoupper($dir));
if(substr($dir,-1)!="/") $dir.="/";
if(!$dir){ $dir="C:/"; $text.="\r\nErreur de changement de dossier. Retour à C:/.\r\n\r\n"; }
?>
<html>
<head><title>PHP-Explorer ~ Console</title></head>
<body bgcolor="black" text="#FCFCFC" onLoad="document.f.cmd.focus();">
<form action="<?=$PHP_SELF?>" method="post" name="f">
<input type="hidden" name=dir value="<?=$dir?>">
<? if($vars){ foreach($vars as $k=>$v){ print("<input type=hidden name=\"vars[$k]\" value=\"$v\">");}} ?>
<input type="hidden" name="text" value="<?=base64_encode($text);?>">
<pre><?=$text?>
<?="$dir!$>"?> <input type="text" name="cmd" style="border:0;background-color:black;color:#FCFCFC;" size="70"></pre>
</form></body>
</html>
Return current item: PHPExplorer