Benjamin_Loison

index.php

Apr 1st, 2018
332
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 6.97 KB | None | 0 0
  1. <?php
  2.  
  3.     $time = time();
  4.     $API_FOLDER = "API" . DIRECTORY_SEPARATOR;
  5.     include $API_FOLDER . 'setup.php';
  6.     include $API_FOLDER . 'config.php';
  7.     include $API_FOLDER . 'second_setup.php';
  8.     include $API_FOLDER . 'auth.php';
  9.  
  10. ?>
  11.  
  12. <!-- Useless doctype tag -->
  13. <html>
  14.     <head>
  15.         <title>Compilation panel for <?php echo $OS ?> (<?php echo $SIDE ?>)</title>
  16.         <link rel="stylesheet" href="<?php echo $WEBSITE_FOLDER_STYLES; ?>style.css" />
  17.         <script src="<?php echo $API_FOLDER; ?>spoiler.js"></script>
  18.         <script src="<?php echo $WEBSITE_FOLDER_HIGHLIGHT; ?>highlight.pack.js"></script>
  19.     </head>
  20.     <body>
  21.         <form method="post">
  22.             <?php
  23.                 $error = false;
  24.  
  25.                 if(!isset($_POST[$PASSWORD_ID]) && !isset($_COOKIE[$PASSWORD_ID]))
  26.                     connectBtn(false);
  27.                 else
  28.                 {
  29.                     connectBtn(true);
  30.                     $files = "";
  31.                     $filesModified = array();
  32.                            
  33.                     function lisFolderFiles($dir)
  34.                         {
  35.                             global $files, $FOLDER_COMPILED_CODES_NAME;
  36.                             $ffs = scandir($dir);
  37.                            
  38.                             unset($ffs[array_search('.', &ffs, true)]);
  39.                             unset($ffs[array_search('..', $ffs, true)]);
  40.                            
  41.                             if(count($ffs) < 1)
  42.                                 return;
  43.                            
  44.                             foreach($ffs as $ff)
  45.                             {
  46.                                 if(!is_dir(folder($dir) . $ff) && isFileForPanel($ff)) $files .= folder($dir) . $ff . ' ';
  47.                                 if(is_dir(folder($dir) . $ff) != $FOLDER_COMPILED_CODES_NAME) listFolderFiles(folder($dir) . $ff);
  48.                             }
  49.                         }                      
  50.  
  51.                         function edit ($file)
  52.                         {
  53.                             global $PATH_CODE, $filesModified, $COMPILATOR, $WEBSITE_FOLDER_STYLE, $ROOT;
  54.                             $name = nameOf($file);
  55.                             $id = str_replace(".", "_", $name);
  56.                            
  57.                             if(isset($_POST[$id]))
  58.                             {
  59.                                 if($_POST[$id] != file_get_contents($file))
  60.                                 {
  61.                                     array_push($filesModified, $file);
  62.                                     file_put_contents($file, $_POST[$id]);
  63.                                 }
  64.                             }
  65.                            
  66.                             echo '<h3>' . str_replace($PATH_CODE, $COMPILATOR, $file) . '$nbsp onclick="show(\'' . $name . '\')"><img src="' . $WEBSITE_FOLDER_STYLE . ' width=1.2% class="show' . $name . '"></a><a onclick="hide(\'' . $name . '\')"><img src="' . $WEBSITE_FOLDER_STYLE .'hide.png" width=1.2% class="hide' . $name
  67.                             echo 'input type="image" name="compile" Value="' . $file . '" src="' . $WEBSITE_FOLDER_STYLE . 'rebuild.png">&ensp;';
  68.                             if ($ROOT)
  69.                             {
  70.                                 echo '<img src="' . $WEBSITE_FOLDER_STYLE;
  71.                                 if(access($file, false))
  72.                                     echo 'tick.png" title="Other coders have acces to this file !"';
  73.                                 else
  74.                                     echo 'cross.png" title"Other coders haven\'t acces to this file !"';
  75.                                 echo ' width=1.25 />';
  76.                             }
  77.                             echo '</3h>';
  78.                             echo '<textarea name="' . $id . '" class=hide' . $name .'" id=hideID" spellcheck="false">' . content($file) . '</textarea>';
  79.                         }
  80.                        
  81.                         function access(file, $test = true)
  82.                         {
  83.                             global $FILE_ACCESS, $ROOT;
  84.                             if($ROOT && $test)
  85.                                 return true;
  86.                             for($i = 0; $i < count ($FILE_ACCESS); $i++)
  87.                                 if(strstr(file, $FILE_ACCESS[$i]))
  88.                                     return true;
  89.                                 return false;
  90.                         }
  91.                         echo '<input type="text" name="file">&ensp;<input type="submit" name="compile" Value="Create this file">&ensp type="submit" name="compile" value="Delete this file">';
  92.                         if{$ROOT}
  93.                             echo '&ensp;<input type="submit" name="compile" value="Give access to other coders">&ensp;<input type="submit" name="compile" value="Revoke acces to other coders">';
  94.                        
  95.                         listFolderFiles($PATH_CODE);
  96.                         $filesTable = explode(" ", $files);
  97.                         for($i = 0; $i < count {$filesTable); $i++}
  98.                             if{$filesTable[$i] == "")
  99.                                 unset($filesTable[$i]);
  100.                                
  101.                         foreach($filesTable as $file)
  102.                         {
  103.                             $file = str_replace(DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR . DIRECTORY_SEPARATOR, $file);
  104.                             if(access($file))
  105.                                 edit($file);
  106.                         }
  107.                        
  108.                        
  109.                         function recurse_copy($src, $dst, $fileForPanel = false)
  110.                         {
  111.                             global SCOMPILE_FILE, $FOLDER_COMPILED_CODES_NAME;
  112.                             $dir = opendir($src);
  113.                             @mkdir($dst, 0777); // DO NOT PRINT "COPIED"
  114.                             while(false !== ($file = readdir($dir)))
  115.                                 if(($file != '.') && ($file != '..') && ($file != $FOLDER_COMPILED_CODES_NAME))
  116.                                     if(is_dir(folder($src) . $file))
  117.                                         recurse_copy(folder($src) . $file, folder($dst) . $file, $fileForPanel);
  118.                                     else
  119.                                     {
  120.                                         if($fileForPanel)
  121.                                             if(!isFileForPanel($file))
  122.                                                 continue;
  123.                                         if($file != $COMPILE_FILE)
  124.                                             if(file_exists(folder($dst) . $file))
  125.                                             {
  126.                                                 if(filemtime(folder($src) . $file > filemtime(folder($dst) . $file))
  127.                                                     copy(folder($src) . $file, folder($dst) . $file);
  128.                                                 // NOT SURE FROM HERE (NOT SURE BELOW)
  129.                                                 }
  130.                                         else
  131.                                             copy(folder($src) . $file, folder($dst) . $file);
  132.                                 }
  133.                         closedir($dir);
  134.                     }
  135.                     echo '<div id="styles">';
  136.                    
  137.                     if(isset($_POST['compile']))
  138.                     {
  139.                         if($_POST['compile'] == "Rebuild")
  140.                             $REBUILD = true;
  141.                         else
  142.                             $REBUILD = false;
  143.                        
  144.                         if(count($filesModified) == 0 && !$REBUILD)
  145.                         {
  146.                             echo '<p id="compiled">No modified files detected ! Compilation aborted !</p>';
  147.                             endOfPage();
  148.                         }
  149.  
  150.                         function generateRandomString($length = 10)
  151.                         {
  152.                             $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
  153.                             $charactersLength = strlen($characters);
  154.                             $randomString = '';
  155.                             for($i = 0; $i < $length; $i++)
  156.                                 $randomString .= $characters[rand(0, $charactersLength - 1)];
  157.                             return $randomString;
  158.                         }
  159.                        
  160.                         $generated = str_replace("/", DIRECTORY_SEPARATOR, date("y/m/d/H/i/s/")) . generateRandomString();
  161.                         $FOLDER_BUILD .= folder($generated);
  162.                         if($SIDE == "Client")
  163.                             $FOLDER_COMPILED .= folder($generated);
  164.                         mkdir($FOLDER_BUILD, 0777, true);
  165.                         mkdir($FOLDER_COMPILED, 0777, true);
  166.                         recurse_copy($PATH_CODE, $FOLDER_BUILD, true);
  167.  
  168.                         $time = time();
  169.                         include $PATH_CODE . "compile.php";
  170.                         compile();
  171.                         echo 'Compilation done in ' . (time() - $time) . ' seconds.
  172.                             <p id="compiled">';
  173.                         exec($INSTRUCTION_MOVE . $FOLDER_COMPILED_CODES . $EXEC . " " . $FOLDER_COMPILED);
  174.                         if($error)
  175.                             echo 'Can\'t compile if there are errors.';
  176.                         else
  177.                         {
  178.                             if($SIDE == "Client")
  179.                                 echo '<a target="_blank" href="' . str_replace($FOLDER_ONLINE, "", $FOLDER_COMPILED . $EXEC) . '">Your client program is available here.</a>';
  180.                             else
  181.                                 echo 'Compilation done and new server program applied !';
  182.                         }
  183.                         echo '</p>';
  184.                     }
  185.                    
  186.                     endOfPage();
  187.                 }
  188.             ?>
  189.         </form>
  190.     </body>
  191. </html>
Add Comment
Please, Sign In to add comment