Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Проблема передачи {image-1} в модуль, как решить?

Проблема передачи {image-1} в модуль, как решить?


     29.12.2014    Общие вопросы, Общие вопросы по PHP    3283

вопрос
Подключаю модуль ресайза картинок
{include file='engine/modules/resize.php?is={image-1}&dp={date=U}&iw=310&ih=171'}

Код файла

<?php

echo $is." - ".$dp." - ".$iw." - ".$ih." - ";

?>


На локалке все работает, все параметры передаются, картинки ресайзаться.

Перенес сайт на сервер, ошибка на модуль file путь not found.
Методом перебора было установлено, что если убрать {image-1} то модуль работает.
Повторю, на локалке все работает. Файлы перезаливал, переписывал, не помогает.
Ребят, помогите, голова уже кипит.

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


22 комментария

Lapuh
Юзер

Lapuh - 29 декабря 2014 15:20 -

Версия движка 10.3, забыл указать.

FastFud
Юзер

FastFud - 29 декабря 2014 15:35 -

У вас отключена эта опция ?
Разрешить посетителям сайта делиться интересными материалами вашего сайта

Lapuh
Юзер

Lapuh - 29 декабря 2014 15:43 -

Отключена

ПафНутиЙ
Админ

ПафНутиЙ - 29 декабря 2014 16:09 -

А права на папки все правильно стоят?
Если в новости выводить картинку - выводится?
Домен кириллический?
Кодировка какая?
В модуль точно попадает то, что вы хотите?

Каков вопрос - таков и ответ. Просто помните об этом.

Lapuh
Юзер

Lapuh - 29 декабря 2014 17:09 -

Права стоят.
Выводится.
Латынь.
ютф8
Да, кроме {image-1} которая вызывает ошибку инклюда

vitnet
PHP-developer

vitnet - 29 декабря 2014 16:14 -

Может стоит лог глянуть?

Lapuh
Юзер

Lapuh - 29 декабря 2014 17:11 -

это в логе /temy/File%20/modules/resize.php%20not%20found

но в инклюде другой путь не укажешь, слеш впереди ставить нельзя

Sander
PHP-developer

Sander - 29 декабря 2014 17:21 -

Как йода, заголовок вопроса составили вы.

Какой адрес у картинки?
Я так полагаю что вы уже дважды перепроверили, существует ли вообще файл по тому адресу, что вы его подключаете.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Lapuh
Юзер

Lapuh - 29 декабря 2014 17:30 -

Десятки раз проверены пути, 100500 раз проверенно, что без {image-1} модуль работает, то есть получает данные.
Все папки имеют права на запись. Но это все дальше, изначальная проблема, почему парсер dle с {image-1} не инклюдид на серваке но инклюдид на локалке.

Sander
PHP-developer

Sander - 29 декабря 2014 17:31 -

Еще раз спрошу.
Какой адрес у картинки?

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Lapuh
Юзер

Sander
PHP-developer

Sander - 29 декабря 2014 17:43 -

Тут все гут. Тогда лезем в код.
Открыть файл engine/classes/templates.class.php
Найти строку:
if ( !file_exists($file_path."/".$file_name) ) return "File {$url['path']} not found.";

Перед ней вставить:
var_dump($file_path,$file_name,$url);


После чего обновляйте страницу и смотрите что написало в том месте где должен быть модуль.
Вот тот код давайте сюда. Домены и пути можете затирать, паранойя - он такая паранойя :)

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Lapuh
Юзер

Lapuh - 29 декабря 2014 19:43 -

string(47) "/var/www/домен.com/modules" string(10) "resize.php" array(3) { ["host"]=> string(6) "engine" ["path"]=> string(19) "/modules/resize.php" ["query"]=> string(101) "is=http://домен.com.com/uploads/posts/2014-06/1403011321-image-001.jpg&dp=1403011974&iw=310&ih=171" }


домен заменен на домен.com

почему то в адресе изображения .com дважды

Sander
PHP-developer

Sander - 29 декабря 2014 19:46 -

Попробуйте подключить модуль так:
{include file='pofig/engine/modules/resize.php?is={image-1}&dp={date=U}&iw=310&ih=171'}

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

ПафНутиЙ
Админ

ПафНутиЙ - 29 декабря 2014 18:31 -

а если скормить вместо {image-1} путь,
http://домен.com/uploads/posts/2014-06/1403011321-image-001.jpg

т.е. без нижней черты. Как то помню был глюк с этими черточками.
Так же попробуйте скормить модулю любую строку.

Сравните ещё phpinfo с локалки и с домена, может не включено что то, что играет роль.

Каков вопрос - таков и ответ. Просто помните об этом.

Sander
PHP-developer

Sander - 29 декабря 2014 19:38 -

Да не, скорее апач дефис как минус прочитает, чем подчеркивание пропустит.
Я думал, что в адресе картинки может быть &, а так даже не знаю, что предположить.
Код что дан в вопросе - прекрасно работает, проверил у себя.

А вот по логу меня смущает это
/temy/File%20/modules/resize.php%20not%20found
Нету слова engine

А автор вопроса у меня ассоциируется с чем-то таким:
- Алё! МЧС? Спасайте!!! Горииииим!!!
- Тихо, тихо. Где случился пожар?
- У меня дома, на втором этаже.

SanDev.pro - мой блог.

Telegram: @sandev
Skype: Sander8804

Lapuh
Юзер

Lapuh - 29 декабря 2014 19:44 -

Все та же ошибка.

вот что ответила целка


Причина вашей проблемы, в том что все параметры которые передаются в URL, должны быть URL кодированными, а не просто в чистом виде, потому как строка URL обладает поддержкой ограниченного количества символов. А вы тегом {image-1} передаете еще один URL в чистом виде, чего быть не должно, к этому URL нужно применять функцию urlencode

sadan
Юзер

sadan - 29 декабря 2014 17:26 -

я согласен с Sander, при смене домена адреса картинок остается домена локального

Lapuh
Юзер

Lapuh - 29 декабря 2014 17:35 -

Вы издеваетесь? Какие пути? Смотрите стартовый пост, в модуль передаются данные и выводятся переменные. С переменными ничего не делается, а просто передается и выводится.
sadan, По вашему комменту, все пути идентичны путям сайта.

FastFud
Юзер

FastFud - 29 декабря 2014 17:43 -

Можно сидеть и дальше гадать где ошибка, а можно взять и установить чистый движок на любом другом бесплатном хостинге и проверить ваш скрипт.

sgb-install
Гости

sgb-install - 29 декабря 2014 20:49 -

Возможно на файлы не установлены права доступа 777, именно с серверной стороны.
Было не раз такое, на Денвере все путем, а на Хостинге глюки.
Проверяйте.

Lapuh
Юзер

Lapuh - 30 декабря 2014 01:01 -

Спасибо, ребят, за Вашу помощь, видимо что то не верно настроено на серваке, в частности parse_url. Переделал модуль по другому, хотел вызывать без влезания в код, но пришлось. Всем спасибо.

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

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

наверх