Просмотр файла file.php

Размер файла: 25.61Kb
<?php

define('_IN_JOHNCMS', 1);

$headmod = 'lib';
$textl = 'Библиотека';
require_once ("../incfiles/core.php");
require_once ("./inc/conf.php");
require_once ("../incfiles/head.php");
if($rights == 5 || $rights >= 6)
{
if(empty($id))
{
    echo '<div class="rmenu">ОШИБКА!!!<br/></div>';
}else{
switch($act)
{
    case "editfile":
    if(mysql_result(mysql_query("select COUNT(*) from `library` where `id` = '".$id."' and `type` = 'file'"),0) > 0)
    {
        $res = mysql_fetch_array(mysql_query("select * from `library` where `id` = '".$id."' and `type` = 'file' LIMIT 1"));
        $name = htmlentities($res['name'],ENT_QUOTES,'UTF-8');
        $opis = htmlentities($res['opis'],ENT_QUOTES,'UTF-8');
        $text = htmlentities($res['text'],ENT_QUOTES,'UTF-8');
        if(empty($_POST['submit']))
        {
            echo '<form method="post" action="file.php?act=editfile&amp;id='.$id.'">';
            echo 'Название стаьи:<br/><input value="'.$name.'" name="name"/><br/>';
            echo 'Описание стаьи:<br/><textarea name="opis">'.$opis.'</textarea><br/>';
            echo 'Статья:<br/><textarea name="text" cols="100" rows="30">'.$text.'</textarea><br/>';
            echo '<input value="Изменить" type="submit" name="submit"/></form>';
        }else{
            if(!empty($_POST['name']) && !empty($_POST['text']))
            {
                $name = mysql_real_escape_string(trim($_POST['name']));
                $opis = mysql_real_escape_string(trim($_POST['opis']));
                $text = mysql_real_escape_string(trim($_POST['text']));
                if(mysql_query("update `library` set `name` = '".$name."', `opis` = '".$opis."', `text` = '".$text."' where `id` = '".$id."' LIMIT 1"))
                {
                    $fid = $res['fid'];
                    header("Location: fileman.php?id=$fid");
                }else{
                    echo 'ОШИБКА!!!<a href="file.php?act=editfile&amp;id='.$id.'">Назад</a><br/>';
                }
            }
        }
    }else{
        echo 'Такой стаьи не существует<br/>';
    }
    break;
    case "delfile":
    if(mysql_result(mysql_query("select COUNT(*) from `library` where `id` = '".$id."' and `type` = 'file'"),0) > 0)
    {
        $res = mysql_fetch_array(mysql_query("select * from `library` where `id` = '".$id."' and `type` = 'file' LIMIT 1"));
        if(!isset($_GET['yes']))
        {
            echo 'Вы потверждаете удаление <a href="file.php?act=delfile&amp;id='.$id.'&amp;yes"><strong>ДА</strong></a> | <a href="fileman.php?id='.$res['fid'].'"><strong>НЕТ</strong></a>';
        }else{
            if(mysql_query("DELETE FROM `library` where `id` = '".$id."' and `type` = 'file' LIMIT 1"))
            {
                $fid = $res['fid'];
                header("Location: fileman.php?id=$fid");
            }else{
                echo 'ОШИБКА!!!<a href="file.php?act=delfile&amp;id='.$id.'">Назад</a><br/>';
            }
        }
    }else{
        echo 'Такой стаьи не существует<br/>';
    }
    break;
    case "perfile":
    if(mysql_result(mysql_query("select COUNT(*) from `library` where `id` = '".$id."' and `type` = 'file'"),0) > 0)
    {
        $sql = mysql_fetch_array(mysql_query("select * from `library` where `id` = '".$id."' and `type` = 'file' LIMIT 1"));
        $sql1 = mysql_query("select * from `library` where `type` = 'dir'");
        if(empty($_POST['submit']))
        {
            echo '<form method="post" action="file.php?act=perfile&amp;id='.$id.'">';
            echo 'Выберете категорию куда переместить:<br/>';
            echo '<select name="dir">';
            while($res = mysql_fetch_array($sql1))
            {
                if($res['fid']!=="0" && $res['id']!==$sql['fid'])
                {
                    echo '<option value="'.$res['id'].'">'.$res['name'].'</option>';
                }
            }
            echo '</select><br/>';
            echo '<input value="Перемистить" type="submit" name="submit"/></form>';
        }else{
            if(!empty($_POST['dir']))
            {
                $fid_d = intval($_POST['dir']);
                if(mysql_query("update `library` set `fid` = '".$fid_d."' where `id` = '".$id."'"))
                {
                    header("Location: fileman.php?id=$fid_d");
                }else{
                    echo 'ОШИБКА!!!<br/><a href="fileman.php?id='.$id.'">Назад</a><br/>';
                }
            }
        }
        
    }else{
        echo 'Такой стаьи не существует<br/>';
    }
    break;
}

}
}
if(!empty($id) && $user_id)
{
    switch($act)
    {
        case "upload":
        $sq = mysql_fetch_array(mysql_query("select `type2` from `library` where `id` = '".$id."' LIMIT 1"));
        if($sq['type2'] == "YES" || ($rights == 5 || $rights >= 6))
        {
        $err = '';
        if(empty($_POST['submit']))
        {
            echo '<form method="post" action="file.php?act=upload&amp;id='.$id.'" enctype="multipart/form-data">';
            echo 'Название статьи (MAX:50)<br/><input name="name_stat"/><br/>';
            echo 'Описание статьи (MAX:1000)<br/><textarea name="opis_stat"></textarea><br/>';
            echo 'Выберите текстовый файл( .txt):<br/><input type="file" name="file"/><br/>';
            echo '<input value="Добавить" type="submit" name="submit"/></form>';
        }else{
            $data = $_FILES['file'];
            $originalname = $data['name'];
            $filesize = $data['size'];
	        $filetype = $data['type'];
	        $file_tmp = $data['tmp_name'];
	        $file_err = $data['error'];
            $file_ext = pathinfo($originalname);
            $file_ext = $file_ext['extension'];
            $blacklist_ext = array('php','pl');
            $mime = array('text/plain');
            if(!empty($_POST['name_stat']) && mb_strlen($_POST['name_stat']) < 50)
            {
                $name_stat = trim($_POST['name_stat']);
            }else{
                @unlink($file_tmp);
                $err = 'Вы забыли ввести название статьи или название статьи привыщает 50 символов';
            }
            if(!empty($_POST['opis_stat']) && mb_strlen($_POST['opis_stat']) < 1000)
            {
                $opis_stat = trim($_POST['opis_stat']);
            }else{
                @unlink($file_tmp);
                $err = 'Вы забыли ввести описание статьи или название статьи привыщает 1000 символов';
            }
            foreach($blacklist_ext as $val)
            {
                if(preg_match("/$val\$/i",$originalname))
                {
                    @unlink($file_tmp);
                    $err = 'Попытка загрузить файл не поддерживаемого формата';
                }
            }
            if($filesize == "0")
            {
                @unlink($file_tmp);
                $err = 'Слишком маленький вес файла: 0 Байт!';
            }
            if($file_err)
            {
                switch($file_err)
                {
                    case "1":
                    @unlink($file_tmp);
                    $err = 'Размер принятого файла превысил максимально допустимый размер!';
                    break;
                    case "2":
                    @unlink($file_tmp);
                    $err = 'Размер принятого файла превысил максимально допустимый размер!';
                    break;
                    case "3":
                    @unlink($file_tmp);
                    $err = 'Загружаемый файл был получен только частично. ';
                    break;
                    case "4":
                    @unlink($file_tmp);
                    $err = 'Файл не был загружен. ';
                    break;
                }
            }
            if(mb_substr_count($originalname,".")>1)
            {
                @unlink($file_tmp);
                $err = 'Файл должен иметь одно расширение. ';
            }
            if(!$file_ext)
            {
                @unlink($file_tmp);
                $err = 'Файл должен иметь расширение. ';
            }
            if(!in_array($filetype,$mime))
            {
                @unlink($file_tmp);
                $err = 'Ошибка, этот файл не поодерживает допустимый mime-type. ';
            }
            if($err <> "")
            {
                echo '<div class="rmenu"><p>' . $err . '</p></div>';
            }else{
                if(is_uploaded_file($file_tmp))
                {
                    $path_file = 'file/'.$user_id.'.txt';
                    if(file_exists($path_file))
                    {
                        @unlink($path_file);
                    }
                    if(move_uploaded_file($file_tmp,$path_file))
                    {
                    $text = file_get_contents($path_file);
                    
                    $text = iconv("windows-1251", "UTF-8", $text);
                    $text = mysql_real_escape_string($text);
                    $sql = mysql_fetch_array(mysql_query("select `path` from `library` where `id` = '".$id."' and `type` = 'dir' LIMIT 1"));
                    $path = $sql['path'];
                    $file = $originalname;
                    $moder = ($rights == 5 || $rights >= 6 ? '1' : "0");
                    if(mysql_query("insert into `library` set
                    `id` = '',
                    `fid` = '".$id."',
                    `path` = '".$path."',
                    `file` = '".$file."',
                    `type` = 'file',
                    `name` = '".$name_stat."',
                    `opis` = '".$opis_stat."',
                    `text` = '".$text."',
                    `ip` = '".$ipp."',
                    `soft` = '".$agn."',
                    `time` = '".$realtime."',
                    `count` = '0',
                    `id_avtor` = '".$user_id."',
                    `rating` = '0',
                    `moder` = '".$moder."';"))
                    {
                        @unlink($path_file);
                        echo 'Статья успешно загружена, перейти к статье:
                        <a href="read.php?id='.mysql_insert_id().'">'.$name_stat.'</a><br/>';
                    }else{
                        @unlink($path_file);
                        echo 'Ошибка при загрузке статьи!<br/>'.mysql_error().'<br/><a href="'.(($rights == 5 || $rights >= 6)? 'fileman' : 'index').'.php?id='.$id.'">Назад</a><br/>';
                    }
                    }
                }
            }
        }
        }
        break;
        case "newstat":
                $sq = mysql_fetch_array(mysql_query("select `type2` from `library` where `id` = '".$id."' LIMIT 1"));
                if($sq['type2'] == "YES" || ($rights == 5 || $rights >= 6))
                {
                $next = isset($_GET['next'])?intval($_GET['next']):0;
                if(!isset($_GET['finish']))
                {
                    echo '<form method="POST" action="file.php?act=newstat&amp;id='.$id.'&amp;next='.++$next.'">';
                    echo 'Текст статьи:<br/><strong>Если ваш браузер не подерживает добавление большого текста в форму то вы можете просто по кусочкам этот текст добавлять и нажимать на кнопку ДАЛЕЕ после того как весь текст добавите нажмете ФИНИШ</strong><br/><textarea name="txt" cols="30" rows="10"></textarea><br/>';
                    echo '<input value="Далее &gt;&gt;" type="submit" name="submit"/><a href="file.php?act=newstat&amp;id='.$id.'&amp;finish"><input value="Финиш" type="submit" name="finish"/></a></form>';
                    echo '<br/>';
                }else{
                    if(file_exists('file/'.$user_id.'_'.$id.'.txt'))
                    {
                        if(empty($_POST['sub']))
                        {
                            echo '<form method="POST" action="file.php?act=newstat&amp;id='.$id.'&amp;finish">';
                            echo 'Название статьи:<br/><input name="name"/><br/>';
                            echo 'Описание статьи:<br/><textarea name="opis"></textarea><br/>';
                            echo '<input value="Добавить" type="submit" name="sub"/></form>';
                        }else{
                            if(!empty($_POST['name']) && !empty($_POST['opis']))
                            {
                                $name = trim($_POST['name']);
                                $opis = trim($_POST['opis']);
                                $file = file_get_contents('file/'.$user_id.'_'.$id.'.txt');
                                $txt = iconv("windows-1251","UTF-8",$file);
                                $sql = mysql_fetch_array(mysql_query("select `path` from `library` where `id` = '".$id."' and `type` = 'dir' LIMIT 1"));
                                $path = $sql['path'];
                                $file = 'file/'.$user_id.'_'.$id.'_'.$realtime.'.txt';
                                $moder = ($rights == 5 || $rights >= 6 ? '1' : "0");
                                if(mysql_query("insert into `library` set
                                `id` = '',
                                `fid` = '".$id."',
                                `path` = '".$path."',
                                `file` = '".$file."',
                                `type` = 'file',
                                `name` = '".$name."',
                                `opis` = '".$opis."',
                                `text` = '".$txt."',
                                `ip` = '".$ipp."',
                                `soft` = '".$agn."',
                                `time` = '".$realtime."',
                                `count` = '0',
                                `id_avtor` = '".$user_id."',
                                `rating` = '0',
                                `moder` = '".$moder."';"))
                                {
                                    @unlink('file/'.$user_id.'_'.$id.'.txt');
                                    echo 'Статья успешно добавлена, перейти к статье:
                                    <a href="read.php?id='.mysql_insert_id().'">'.$name.'</a><br/>';
                                }else{
                                    echo 'Ошибка при добавлении статьи!<br/><a href="'.(($rights == 5 || $rights >= 6)? 'fileman' : 'index').'.php?id='.$id.'">Назад</a><br/>';
                                }
                            }else{
                                echo '<div class="rmenu">ОШИБКА!!!<br/>Вы не ввели название или описание!<br/></div>';
                            }
                        }
                    }else{
                        echo '<div class="rmenu">ОШИБКА!!!<br/>Вы не ввели текст!<br/></div>';
                    }
                }
                if(isset($_GET['next'])){
                    if(!empty($_POST['txt']))
                    {
                        $txt = trim($_POST['txt']);
                        $txt = iconv("UTF-8", "windows-1251", $txt);
                        #$txt = mysql_real_escape_string($txt);
                        #$n .= $next.'-';
                        $text_name = 'file/'.$user_id.'_'.$id.'.txt';
                        if(!file_exists($text_name))
                        {
                            $fp = fopen($text_name,"w");
                            flock($fp,LOCK_EX);
                            fputs($fp,$txt."\r\n");
                            flock($fp,LOCK_UN);
                            fclose($fp);
                        }else{
                            $fp = fopen($text_name,"a");
                            flock($fp,LOCK_EX);
                            fputs($fp,$txt."\r\n");
                            flock($fp,LOCK_UN);
                            fclose($fp);
                        }
                    }else{
                        echo '<div class="rmenu">ОШИБКА!!!<br/>Вы не ввели текст!<br/></div>';
                    }
                }
                }
        break;
        case "precfile":
        if($rights == 5 || $rights >= 6)
        {
        $err = '';
        if(empty($_POST['submit']))
        {
            echo '<form method="post" action="file.php?act=precfile&amp;id='.$id.'" enctype="multipart/form-data">';
            echo 'Название для отображения:<br/><input name="name"/><br/>';
            echo 'Выберите файл( .txt .zip .rar .png .jpg . jpeg .gif .png):<br/><input type="file" name="file"/><br/>';
            echo '<input value="Добавить" type="submit" name="submit"/></form>';
        }else{
            $data = $_FILES['file'];
            $originalname = $data['name'];
            $filesize = $data['size'];
	        $filetype = $data['type'];
	        $file_tmp = $data['tmp_name'];
	        $file_err = $data['error'];
            $file_ext = pathinfo($originalname);
            $file_ext = $file_ext['extension'];
            $blacklist_ext = array('php','pl');
            $mime = array('text/plain','application/x-zip-compressed','application/zip','image/gif','image/png','image/jpeg','application/x-rar-compressed');
            if(!empty($_POST['name']) && mb_strlen($_POST['name']) < 50)
            {
                $name = trim($_POST['name']);
            }else{
                @unlink($file_tmp);
                $err = 'Вы забыли ввести название статьи или название статьи привыщает 50 символов';
            }
            foreach($blacklist_ext as $val)
            {
                if(preg_match("/$val\$/i",$originalname))
                {
                    @unlink($file_tmp);
                    $err = 'Попытка загрузить файл не поддерживаемого формата';
                }
            }
            if($filesize == "0")
            {
                @unlink($file_tmp);
                $err = 'Слишком маленький вес файла: 0 Байт!';
            }
            if($file_err)
            {
                switch($file_err)
                {
                    case "1":
                    @unlink($file_tmp);
                    $err = 'Размер принятого файла превысил максимально допустимый размер!';
                    break;
                    case "2":
                    @unlink($file_tmp);
                    $err = 'Размер принятого файла превысил максимально допустимый размер!';
                    break;
                    case "3":
                    @unlink($file_tmp);
                    $err = 'Загружаемый файл был получен только частично. ';
                    break;
                    case "4":
                    @unlink($file_tmp);
                    $err = 'Файл не был загружен. ';
                    break;
                }
            }
            if(mb_substr_count($originalname,".")>1)
            {
                @unlink($file_tmp);
                $err = 'Файл должен иметь одно расширение. ';
            }
            if(!$file_ext)
            {
                @unlink($file_tmp);
                $err = 'Файл должен иметь расширение. ';
            }
            if(!in_array($filetype,$mime))
            {
                @unlink($file_tmp);
                $err = 'Ошибка, этот файл не поодерживает допустимый mime-type. ';
            }
            if($err <> "")
            {
                echo '<div class="rmenu"><p>' . $err . '</p></div>';
            }else{
                if(is_uploaded_file($file_tmp))
                {
                    $path_file = $user_id.'_'.$realtime.'.'.$file_ext;
                    if(file_exists('file/'.$path_file))
                    {
                        @unlink('file/'.$path_file);
                    }
                    if(move_uploaded_file($file_tmp,'file/'.$path_file))
                    {
                        if(mysql_query("insert into `lib_file` set
                        `id` = '',
                        `fid` = '".$id."',
                        `name` = '".$name."',
                        `file` = '".$path_file."',
                        `time` = '".$realtime."';"))
                        {
                            $sql1 = mysql_fetch_array(mysql_query("select `fid`,`name` from `library` where `id` = '".$id."'"));
                            $sql = mysql_fetch_array(mysql_query("select `fid`,`name` from `library` where `id` = '".$sql1['fid']."'"));
                            echo 'Файл успешно загружен:<br/><a href="fileman.php?id='.$sql1['fid'].'">'.$sql['name'].'</a>';
                        }else{
                            header("location: file.php?act=precfile&id=$id");
                        }
                    }
                }
            }
        }
        }
        break;
        case "look":
        $cou = mysql_result(mysql_query("select COUNT(*) from `lib_file` where `id` = '".$id."'"),0);
        if($cou > 0)
        {
            $res = mysql_fetch_array(mysql_query("select * from `lib_file` where `id` = '".$id."'"));
            $file = './file/'.$res['file'];
            if(file_exists($file))
            {
                header("Location: $file");
            }
            
        }
        break;
        case "editprec":
        if($rights == 5 || $rights >= 6)
        {
        $cou = mysql_result(mysql_query("select COUNT(*) from `lib_file` where `fid` = '".$id."'"),0);
        if($cou > 0)
        {
            $sql = mysql_query("select * from `lib_file` where `fid` = '".$id."'");
            while($res = mysql_fetch_array($sql))
            {
                $i = 11;
                echo ($i % 2) ? '<div class="list1">' : '<div class="list2">';
                echo '<a href="file.php?act=look&amp;id='.$res['id'].'">'.$res['name'].'</a><br/>';
                echo '<a href="file.php?act=editprec&amp;fid='.$res['id'].'&amp;ed&amp;id='.$id.'"><span class="red">Удалить</span></a>';
                echo '</div>';
            }
            if(isset($_GET['ed']))
            {
                if(file_exists('./file/'.$ed['file']))
                {
                    @unlink('./file/'.$ed['file']);
                }
                $sql = mysql_query("select * from `lib_file` where `id` = '".intval($_GET['fid'])."'");
                $ed = mysql_fetch_array($sql);
                $dd = mysql_fetch_array(mysql_query("select `fid` from `library` where `id` = '".$ed['fid']."'"));
                mysql_query("delete from `lib_file` where `id` = '".intval($_GET['fid'])."'");
                
                header("Location: fileman.php?id=".$dd['fid']);
            }
            
        }
        }
        $sql1 = mysql_fetch_array(mysql_query("select `fid` from `library` where `id` = '".$id."'"));
        echo '<a href="fileman.php?id='.$sql1['fid'].'">Назад</a>';
        break;
        case "rat":
        if($_SESSION['rat'] !== $id)
        {
            $_SESSION['rat'] = $id;
            $rat = intval($_POST['rat']);
            $re = mysql_fetch_array(mysql_query("slect `rating` from `library` where `id` = '".$id."' LIMIT 1"));
            if(!empty($re['rating']))
            {
                $re1 = explode(":",$re['rating']);
                $kol = $re1[0];
                $ocenka = $re[1];
                $zap = intval(++$kol).':'.intval($ocenka + $rat);
            }else{
                $kol = 0;
                $ocenka = 0;
                $zap = intval(++$kol).':'.intval($ocenka + $rat);
            }
            mysql_query("update `library` set `rating` = '".$zap."' where `id` = '".$id."'");
            $ocenka2=round($ocenka/2);
            echo'<br/>Спасибо ваша оценка: <b>"'.(int)$ocenka2.'"</b> принята<br/>';  
            $re = mysql_fetch_array(mysql_query("slect `rating` from `library` where `id` = '".$id."' LIMIT 1"));
            $re1 = explode(":",$re['rating']);
            $tit=round($re1[1]/2/$re1[0],1);
            echo 'Всего оценивало: '.(int)$re1[0].'<br/>';
            echo 'Средняя оценка: '.$tit.'<br/>';
        }else{
            echo 'Вы уже голосовали за эту статью<br/>';
        }
        echo'<br/><a href="read.php?id='.$id.'">Вернуться</a>';
        break;
    }
}

require_once ("../incfiles/end.php");
?>