Файл: php-zona.ru/modules/admin/smile.php
Строк: 214
<?
$title = 'Смайлы';
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
level(1);
switch($_GET['act']){
    default:
    $q = $db->query("SELECT * FROM `smile_section`");
    while($s = $q->fetch_assoc()){
        ?>
        <div class="section"><a href="/admin/smile?act=section&id=<?=$s['id']?>"><?=$s['name']?></a> <a href="/admin/smile?act=edit_section&id=<?=$s['id']?>">[Ред.]</a> <a href="/admin/smile?act=del_section&id=<?=$s['id']?>">[Уд.]</a></div>
        <?
    }
    if($db->query("SELECT `id` FROM `smile_section`")->num_rows==0){
        ?>
        <div class="error">Разделов пока нет!</div>
        <?
    }
    ?>
    <div class="nvg"><a href="/admin/smile?act=new_section">Создать раздел</a></div>
    <?
    break;
    case 'new_section':
    if(isset($_POST['ok'])){
        $_POST['name'] = guard($db->real_escape_string($_POST['name']));
        if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
            error('Название раздела должно содержать не менее 2 и не более 255 символов!');
        }
        $db->query("INSERT INTO `smile_section` SET `name`='".$_POST['name']."'");
        success('Раздел успешно создан!');
    }
    ?>
    <div class="title">Новый раздел</div>
    <div class="text">
        <form action="" method="POST">
            Название:<br/>
            <input type="text" name="name" placeholder="Введите название..."><br/>
            <input type="submit" name="ok" value="Создать">
        </form>
    </div>
    <?
    break;
    case 'edit_section':
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Раздела не существует!');
    }
    if(isset($_POST['ok'])){
        $_POST['name'] = guard($db->real_escape_string($_POST['name']));
        if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
            error('Название раздела должно содержать не менее 2 и не более 255 символов!');
        }
        $db->query("UPDATE `smile_section` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
        success('Раздел успешно отредактирован!');
    }
    $section = $db->query("SELECT * FROM `smile_section` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
    ?>
    <div class="title">Редактирование раздела</div>
    <div class="text">
        <form action="" method="POST">
            Название:<br/>
            <input type="text" name="name" value="<?=$section['name']?>"><br/>
            <input type="submit" name="ok" value="Изменить">
        </form>
    </div>
    <?
    break;
    case 'del_section':
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Раздела не существует!');
    }
    $q = $db->query("SELECT * FROM `smile` WHERE `section`='".$_GET['id']."'");
    while($s = $q->fetch_assoc()){
        unlink('../../files/smile/'.$s['file']);
        $db->queyr("DELETE FROM `smile` WHERE `id`='".$s['id']."'");
    }
    $db->query("DELETE FROM `smile_section` WHERE `id`='".$_GET['id']."'");
    header('location:/admin/smile');
    break;
    case 'new_smile':
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Раздела не существует!');
    }
    if(isset($_POST['ok'])){
        $_POST['name'] = guard($db->real_escape_string($_POST['name']));
        if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
            error('Название смайла должно содержать не менее 2 и не более 255 символов.');
        }
        if($_POST['imp']==imp){
        $_POST['import'] = guard($db->real_escape_string($_POST['import']));
        if (!@fopen($_POST['import'], 'r')){
            error('Файла не существует!');
        }
        $gh = get_headers($_POST['import'], 1);
        $maxsize = 100; // Максимальный размер файла,в мегабайтах
        $size = $gh['Content-Length']; // Вес файла
        if ($size > (1048576 * $maxsize)){
            error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
        }
        $info_url = pathinfo($_POST['import']);
        $filetype = array(
            'jpg',
            'gif',
            'png',
            'jpeg');
        /* Если тип файла не подходит */
        if (!in_array($info_url['extension'], $filetype))
        {
            error('Тип файла не подходит!');
        }
        $file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.time().'.'.$info_url['extension'];
        if (!copy($_POST['import'], '../../files/smile/'.$file.'')){
            error('Ошибка в копировании на сервер!');
        }
        $db->query("INSERT INTO `smile` SET `name`='".$_POST['name']."', `section`='".$_GET['id']."', `file`='".$file."'");
           success('Смайл успешно добавлен!');
    }else{
        $size = $_FILES['file']['size'];
        $max = 100;
        $filetype = array(
            'jpg',
            'gif',
            'png',
            'jpeg');
        $upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
        if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
            error('Выберите файл!');
        }elseif($size > (1048576 * $max)){
            error('Вес файла должен быть не более '.$max.' мб.');
        }elseif(!in_array($upfiletype, $filetype)){
            error('Файл данного формата загржать запрещено!');
        }
        $file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
        move_uploaded_file($_FILES['file']['tmp_name'], "../../files/smile/".$file."");
        $db->query("INSERT INTO `smile` SET `name`='".$_POST['name']."', `section`='".$_GET['id']."', `file`='".$file."'");
        success('Смайл успешно добавлен!');
    }
    }
    ?>
    <div class="title">Добавление смайла</div>
    <div class="text">
        <form action="" method="POST" enctype="multipart/form-data">
            Название:<br/>
            <input type="text" name="name" placeholder="Введите название"><br/> 
            *Выберите файл:<br/>
            <input type="file" name="file"><br/>
            <input type="radio" name="imp" value="imp"> Импорт:<br/>
            Файл:<br/>
            <input type="text" name="import" value="http://"><br/>
            <input type="submit" name="ok" value="Добавить">
        </form>
    </div>
    <?
    break;
    case 'edit_smile':
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `smile` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Смайла не существует!');
    }
    if(isset($_POST['okf'])){
        $smile = $db->query("SELECT `file` FROM `smile` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
        if($_POST['imp']==imp){
            $_POST['import'] = guard($db->real_escape_string($_POST['import']));
            if (!@fopen($_POST['import'], 'r')){
                error('Файла не существует!');
            }
            $gh = get_headers($_POST['import'], 1);
            $maxsize = 100; // Максимальный размер файла,в мегабайтах
            $size = $gh['Content-Length']; // Вес файла
            if ($size > (1048576 * $maxsize)){
                error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
            }
            $info_url = pathinfo($_POST['import']);
            $filetype = array(
                'jpg',
                'gif',
                'png',
                'jpeg');
            /* Если тип файла не подходит */
            if (!in_array($info_url['extension'], $filetype))
            {
                error('Тип файла не подходит!');
            }
            $file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.time().'.'.$info_url['extension'];
            unlink('../../files/smile/'.$smile['file']);
            if (!copy($_POST['import'], '../../files/smile/'.$file.'')){
                error('Ошибка в копировании на сервер!');
            }
            $db->query("UPDATE `smile` SET `file`='".$file."' WHERE `id`='".$_GET['id']."'");
               success('Смайл успешно обновлён.');
        }else{
            $size = $_FILES['file']['size'];
            $max = 100;
            $filetype = array(
                'jpg',
                'gif',
                'png',
                'jpeg');
            $upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
            if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
                error('Выберите файл!');
            }elseif($size > (1048576 * $max)){
                error('Вес файла должен быть не более '.$max.' мб.');
            }elseif(!in_array($upfiletype, $filetype)){
                error('Файл данного формата загржать запрещено!');
            }
            $file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
            unlink('../../files/smile/'.$smile['file']);
            move_uploaded_file($_FILES['file']['tmp_name'], "../../files/smile/".$file."");
            $db->query("UPDATE `smile` SET `file`='".$file."' WHERE `id`='".$_GET['id']."'");
            success('Смайл успешно обновлён.');
        }
    }
    if(isset($_POST['ok'])){
        $_POST['name'] = guard($db->real_escape_string($_POST['name']));
        if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
            error('Название смайла должно содержать не менее 2 и не более 255 символов.');
        }
        $db->query("UPDATE `smile` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
        success('Название успешно изменено.');
    }
    $smile = $db->query("SELECT * FROM `smile` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
    ?>
    <div class="title">Редактирование смайла</div>
    <div class="text">
        <img src="/files/smile/<?=$smile['file']?>"><br/>
        <form action="" method="POST">
            Название:<br/>
            <input type="text" name="name" value="<?=$smile['name']?>"><br/>
            <input type="submit" name="ok" value="Сохранить">
        </form>
    </div>
    <div class="title">Замена смайла</div>
    <div class="text">
        <form action="" method="POST" enctype="multipart/form-data">
            *Выберите файл:<br/>
            <input type="file" name="file"><br/>
            <input type="radio" name="imp" value="imp"> Импорт:<br/>
            Файл:<br/>
            <input type="text" name="import" value="http://"><br/>
            <input type="submit" name="okf" value="Добавить">
        </form>
    </div>
    <?
    break;
    case 'del_smile':
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `smile` WHERE `id`='">$_GET['id']."'")->num_rows==0){
        error('Смайла не существует!');
    }
    $smile = $db->query("SELECT * FROM `smile` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
    $db->query("DELETE FROM `smile` WHERE `id`='".$_GET['id']."'");
    unlink('../../files/smile/'.$smile['file']);
    header('location:/admin/smile?act=section&id='.$smile['section']);
    break;
    case 'section':
    $_GET['id'] = abs(intval($_GET['id']));
    if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
        error('Раздела не существует!');
    }
    $nav=new navig("SELECT * FROM `smile` WHERE `section`='".$_GET['id']."'");
    
    $q=$db->query('SELECT * FROM `smile` WHERE `section`='.$_GET['id'].' ORDER BY `id` DESC LIMIT '.$nav->start.','.$nav->nstr);
    
    while($s=$q->fetch_assoc()){
        ?>
        <div class="section"><img src="/files/smile/<?=$s['file']?>"> - <?=$s['name']?><br/>
            <a href="/admin/smile?act=edit_smile&id=<?=$s['id']?>">[Ред.]</a> <a href="/admin/smile?act=del_smile&id=<?=$s['id']?>">[Уд.]</a></div>
        <?
    }
    
    ?>
    <div class="nvgstr">
    <?
        $nav->panel();
    ?>
    </div>
    <?
        if($db->query("SELECT `id` FROM `smile` WHERE `section`='".$_GET['id']."'")->num_rows==0){
        ?>
        <div class="error">Смайлов пока нет.</div>
        <?
    }
    ?>
    <div class="nvg"><a href="/admin/smile?act=new_smile&id=<?=$_GET['id']?>">Добавить смайл</a></div>
    <?    
    break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>