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

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


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

вопрос
Подключаю модуль ресайза картинок
{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
18 | 3

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

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

FastFud
50

1599 | 588

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

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

Lapuh
18 | 3

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

Отключена

ПафНутиЙ
1065

3396 | 2434

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

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

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

Lapuh
18 | 3

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

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

vitnet
218

2174 | 930

vitnet - 29 декабря 2014 16:14 - Эксперт

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

Lapuh
18 | 3

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

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

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

Sander
1126

1638 | 1204

Sander - 29 декабря 2014 17:21 - Эксперт

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

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

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

ICQ: 404-037-556
Skype: Sander8804

Lapuh
18 | 3

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

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

Sander
1126

1638 | 1204

Sander - 29 декабря 2014 17:31 - Эксперт

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

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

ICQ: 404-037-556
Skype: Sander8804

Lapuh
18 | 3

Lapuh - 29 декабря 2014 17:37 - Юзер


Sander
1126

1638 | 1204

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 - мой блог.

ICQ: 404-037-556
Skype: Sander8804

Lapuh
18 | 3

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
1126

1638 | 1204

Sander - 29 декабря 2014 19:46 - Эксперт

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

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

ICQ: 404-037-556
Skype: Sander8804

ПафНутиЙ
1065

3396 | 2434

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

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

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

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

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

Sander
1126

1638 | 1204

Sander - 29 декабря 2014 19:38 - Эксперт

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

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

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

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

ICQ: 404-037-556
Skype: Sander8804

Lapuh
18 | 3

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

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

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


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

sadan
16

107 | 38

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

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

Lapuh
18 | 3

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

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

FastFud
50

1599 | 588

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

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

sgb-install
28 | 1

sgb-install - 29 декабря 2014 20:49 - Гости

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

Lapuh
18 | 3

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

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

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

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