Ошибка при загрузке изображений на сайте

Статус
В этой теме нельзя размещать новые ответы.

saymong

Мой дом здесь!
Регистрация
29 Сен 2010
Сообщения
610
Реакции
430
Всем доброго вечера (дня, ночи и тд)
Столкнулся с проблемой.
Скрипт не видит (не выводит) изображение.
Долго описывать не буду, скриншот все объяснит
4895c62321.jpg

Сама картинка на хосте присутствует и доступна.


Помогите решить загадку...
 
safe_image.php это не картинка. Это пхп скрипт который должен отдать картинку. Открой его и смотри почему он не может отобразить- включи вывод ошибок и отключи header который отдаёт заголовок что это картинка - так сможешь увидеть что за ошибка. Может просто картинки с id=22 нету
 
safe_image.php это не картинка. Это пхп скрипт который должен отдать картинку. Открой его и смотри почему он не может отобразить- включи вывод ошибок и отключи header который отдаёт заголовок что это картинка - так сможешь увидеть что за ошибка. Может просто картинки с id=22 нету
То что файл я знаю, правильно, он должен выводить картинку по заданному ID
То что картинка есть под ID 22 это 100%
Вывод ошибок включен, но никаких ошибок не показывает(((
Права на папки уже выставил (для проверки) 777
А вот и сам код файла

Код:
<?php
include 'config.php';
include 'core/classes/Database.php';
include 'core/classes/Security.php';
include 'core/classes/General.php';
$__DB = new Database($_config);
$__DB->connect();
$__DB->select_db();
$__Sec     = new Security($__DB);
$__GB     = new General($__DB,$__Sec);
if(isset($_GET['id']) && $_GET['id'] != 0){
    $__GB->getSafeImage($_GET['id']);
}else{
    ob_clean();
    header('Content-Type: image/jpg');
    echo file_get_contents('uploads/logo.png');
}
?>
 
хз. Скорее всего надо копать функцию getSafeImage - чего она не печатате картинку. Как самый простой вариант попробовать написать print_r($__GB);
в конце и понадеяться что если были какие то ошибки они записались в какую нить переменную errors
 
хз. Скорее всего надо копать функцию getSafeImage - чего она не печатате картинку. Как самый простой вариант попробовать написать print_r($__GB);
в конце и понадеяться что если были какие то ошибки они записались в какую нить переменную errors
Код:
public function getSafeImage($id)
    {
        $id = $this->__DB->escape_string($id);
        $query = $this->__DB->select('images','*','`id` = '.$id);
        $fetch = $this->__DB->fetch_assoc($query);
        $path = 'uploads/'.$fetch['path'].'/'.$fetch['new_name'];
        ob_clean();
        header('Content-Type: image/jpg');
        echo file_get_contents($path);

    }

Может посмотрите))) Я уже со своими мизерными навыками все перелопатил...
 
Отличный код. По порядку
$id = $this->__DB->escape_string($id);
Тут берём переданный ид и экранируем его.
$query = $this->__DB->select('images','*','`id` = '.$id);
Тут выбираем из базы по ид. Код хороший- дырка в безопасности всегда пригодиться. Ну или по крайней мере она тут 99% что есть.
На всякий случай :
$id = $this->__DB->escape_string($id);
замени на
$id = $this->__DB->escape_string((int)$id);
-----
Дальше чтоб починить -
делаешь var_dump(
'uploads/'.$fetch['path'].'/'.$fetch['new_name'], file_exists(
'uploads/'.$fetch['path'].'/'.$fetch['new_name']
));

Первое будет путь, второе будет- есть ли файл по пути. Проверяй
 
Отличный код. По порядку
$id = $this->__DB->escape_string($id);
Тут берём переданный ид и экранируем его.
$query = $this->__DB->select('images','*','`id` = '.$id);
Тут выбираем из базы по ид. Код хороший- дырка в безопасности всегда пригодиться. Ну или по крайней мере она тут 99% что есть.
На всякий случай :
$id = $this->__DB->escape_string($id);
замени на
$id = $this->__DB->escape_string((int)$id);
-----
Дальше чтоб починить -
делаешь var_dump(
'uploads/'.$fetch['path'].'/'.$fetch['new_name'], file_exists(
'uploads/'.$fetch['path'].'/'.$fetch['new_name']
));

Первое будет путь, второе будет- есть ли файл по пути. Проверяй
Уже разобрался. Самая интересная вещь, что в файле конфигурации нужно было только добавить код
Код:
ob_start();

Вот такие пирожки. Тему можно закрывать)))
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху