Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы по PHP » Нужно помощь в php

Нужно помощь в php


     14.05.2013    php    Все вопросы » Общие вопросы по PHP    3164

вопрос
Добрый день, вот суть моей проблемы:

Есть код


$imags_id=1;
        $idpost = $row['id'];
        while ($imags_id<=1) {
        $imags_id++;
        $allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
        if ((isset($_FILES['poster_add_'.$imags_id.'']) && $_FILES['poster_add_'.$imags_id.'']!='')) {
            
        if( ! is_dir( ROOT_DIR . "/uploads/poster/") ) {
            @mkdir( ROOT_DIR . "/uploads/poster/");
            @chmod( ROOT_DIR . "/uploads/poster/");
            @mkdir( ROOT_DIR . "/uploads/poster/");
            @chmod( ROOT_DIR . "/uploads/poster/");
        }            
            $config_path_image_upload = ROOT_DIR . "/uploads/poster/" . "/";
                    
            $current_image = 'poster_add_'.$imags_id.'';
            $image = $_FILES[$current_image]['tmp_name'];
            $image_name = $_FILES[$current_image]['name'];
            $image_size = $_FILES[$current_image]['size'];
            $error_code = $_FILES[$current_image]['error'];
    
            $img_name_arr = explode( ".", $image_name );
            $type = totranslit( end( $img_name_arr ) );
            if( $image_name != "" ) {
                $curr_key = key( $img_name_arr );
                unset( $img_name_arr[$curr_key] );
                $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
            }
            
            if ( in_array( strtolower( $type ), $allowed_extensions) ) {
            
            @move_uploaded_file( $image, $config_path_image_upload . $image_name );
            
            if( @file_exists( $config_path_image_upload . $image_name ) ) {
                @chmod( $config_path_image_upload . $image_name, 0666 );
                    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                    if( ! $row['count'] ) {
                        $added_time = time() + ($config['date_adjust'] * 60);
                        $inserts = FOLDER_PREFIX . "/" . $image_name;
                        $db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '{$member_id[name]}', '$idpost', '$added_time')" );
                    }
              }
            }
            
        }
        }

это для загрузки картинок на сервере: Источник

Выводиться все отлично но у меня на сайте устроено публикация материалов таким образом что мне нужно:

Загрузка Постера - для постера отдельная папка ex: Poster
Загрузка 5 Скриншотов - для них тоже отдельная папка ex: Screenshots
И загрузка файлов - и опять же отдельная папка

С постером и с файлами все отлично но для того чтобы были и скриншоты я продублировал вот этот код и вставил ниже


$imags_id=0;
        $idpost = $row['id'];
        while ($imags_id<=5) {
        $imags_id++;
        $allowed_extensions = array ("gif", "jpg", "png", "jpe", "jpeg" );
        if ((isset($_FILES['screenshot_add_'.$imags_id.'']) && $_FILES['screenshot_add_'.$imags_id.'']!='')) {
            
        if( ! is_dir( ROOT_DIR . "/uploads/screenshots/") ) {
            @mkdir( ROOT_DIR . "/uploads/screenshots/");
            @chmod( ROOT_DIR . "/uploads/screenshots/");
            @mkdir( ROOT_DIR . "/uploads/screenshots/");
            @chmod( ROOT_DIR . "/uploads/screenshots/");
        }            
            $config_path_image_upload = ROOT_DIR . "/uploads/screenshots/" . "/";
                    
            $current_image = 'screenshot_add_'.$imags_id.'';
            $image = $_FILES[$current_image]['tmp_name'];
            $image_name = $_FILES[$current_image]['name'];
            $image_size = $_FILES[$current_image]['size'];
            $error_code = $_FILES[$current_image]['error'];
    
            $img_name_arr = explode( ".", $image_name );
            $type = totranslit( end( $img_name_arr ) );
            if( $image_name != "" ) {
                $curr_key = key( $img_name_arr );
                unset( $img_name_arr[$curr_key] );
                $image_name = totranslit( implode( ".", $img_name_arr ) ) . "." . $type;
            }
            
            if ( in_array( strtolower( $type ), $allowed_extensions) ) {
            
            @move_uploaded_file( $image, $config_path_image_upload . $image_name );
            
            if( @file_exists( $config_path_image_upload . $image_name ) ) {
                @chmod( $config_path_image_upload . $image_name, 0666 );
                    $row = $db->super_query( "SELECT COUNT(*) as count FROM " . PREFIX . "_images where author = '{$member_id[name]}' AND news_id = '$idpost'" );
                    if( ! $row['count'] ) {
                        $added_time = time() + ($config['date_adjust'] * 60);
                        $inserts = FOLDER_PREFIX . "/" . $image_name;
                        $db->query( "INSERT INTO " . PREFIX . "_images (images, author, news_id, date) values ('$inserts', '{$member_id[name]}', '$idpost', '$added_time')" );
                    }
              }
            }
            
        }
        }


но он вообще ищет то чего там нету то есть ищет в папке Screenshots картинку которая находиться в папке POSTER


в showfull.php ставлю так:


        $sql_result2 = $db->query( "SELECT images, news_id FROM " . PREFIX . "_images where news_id = '{$row['id']}'" );
$poster = $db->get_row($sql_result2);
if ($poster['images'] != "") {
$scrsList = explode('|||',$poster['images']);
        $scrs = '';
        $cntscrs = count($scrsList);
        $ai = 0;
    
        foreach ($scrsList as $scr)
        {
            $ai++;
            $scr = trim($scr);
            $poster_temp = explode("/",$scr);
            $poster_name = $poster_temp[1];
            $scrs = ''. $config ['http_home_url'] . 'uploads/poster/'.$poster_name.'';
$tpl->set ( '{poster'.$ai.'}', $scrs);
            if ($ai<$cntscrs) $scrs .= '';
            if ($ai=="1") break;
        }
        unset($scrsList);
}else {
$ai=0;
while ($ai<1){
$ai++;
$tpl->set ( '{poster'.$ai.'}', "");
}


и также дублирую код для показа скриншотов


P.S хак загружает все файлы по папкам как надо только не выводиться как надо.

Пожалуйста помогите уже нет сил самому не удалось разобраться (плюс + к тому что я чайник в php)

Ответа пока нет


Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх