Скажите, а у вас нет в планах полностью перейти на jQuery вместо mootools? Я так понимаю если я сам переделаю весь сайт на jQuery, то после очередного обновления всё сломается.
jQuery | |
Скажите, а у вас нет в планах полностью перейти на jQuery вместо mootools? Я так понимаю если я сам переделаю весь сайт на jQuery, то после очередного обновления всё сломается.
|
|
Скажите, а у вас нет в планах полностью перейти на jQuery вместо mootools? Я так понимаю если я сам переделаю весь сайт на jQuery, то после очередного обновления всё сломается. В планах нет, но Вы можете использовать любой удобный фреймворк - ничего критически важного на него не завязано (кроме тулбара в форме ответа, но он тоже не критичный ). По возможности, стараюсь все скрипты писать независимыми от фреймворка, так как понимаю, что не все являются фанатами mootools. По этой же причине не использую ajax на клиентской части. |
|
Вот организовал аплоад фото в модуле, все работает, решил прикрепить jquery плагин Uploadify, все настроил кроме указания пути к пхп обработчику..Опять те же грабли, так сказать. Не знаю или это нужно плагин сам копать..
Javascript
Почему то так не срабатывает в шаблоне.. |
|
А под /mymodule имеется ввиду адрес узла или Вы пытаетесь обратиться напрямую к каталогу с модулем?
Вообще у меня аналогичная конструкция с плагином Fancyaupload работает нормально. /mymodule-upload_image.ajax. В конце желательно указывать один из типов: xml, json, ajax, js - тогда в ответе сервера не будет содержаться отладочной информации ломающей парсинг js. |
|
Да, адрес узла.
получается url в браузере: mysite.ru/mymodule-upload_image.167/ Где 167 - уник id к которому "цепляется" фото. Тип .js указан. В настройках плагина тоже указал : Javascript
Так все работает и показуется загрузка файла. Но вот бэкэнд видимо найти он не может.:/ |
|
получается url в браузере: mysite.ru/mymodule-upload_image.167/ Должен получиться mysite.ru/mymodule-upload_image.167.js Так все работает и показуется загрузка файла. Но вот бэкэнд видимо найти он не может.:/ Ну тут лучше бы не гадать, а проверить чем-то вроде консоли firebug. |
|
Скажите, а у вас нет в планах полностью перейти на jQuery вместо mootools? Я так понимаю если я сам переделаю весь сайт на jQuery, то после очередного обновления всё сломается. Спасибо. Вы меня успокоили. Не могу я эти mootools Ваши. jQuery наше всё. А "тулбар в форме ответа" это где? В форуме? Так у меня форума не будет. |
|
Спасибо. Вы меня успокоили. Не могу я эти mootools Ваши. jQuery наше всё. В форуме, гостевой и прочих местах, где есть пользовательский ввод. За его генерацию отвечает скрипт bbcode.js. Если его убрать, то никакого тулбара просто не будет - ничего не обрушится Только из шаблона с формой надо будет убрать его вызов. Этот скрипт я написал с использованием mootools, но он очень простой и, думаю, Вам не составит труда, при необходимости, адаптировать его для работы с jQuery. |
|
странно..firebug вообще ничего не показывает.
Кстати у меня идет переадресация на этот адрес (/mymodule-upload_image) после заполнения первой формы PHP
Может быть в этом проблема? |
|
Генерация URL правильно выглядит так:
PHP
или вот так PHP
странно..firebug вообще ничего не показывает. Судя по описанию, у вас вообще не работает ajax запрос - получается обычная отправка формы. Отсюда и пустые показания firebug (вы же раздел "сеть" в нем смотрите?) и перезагрузка страницы с формой. |
|
Вот что мне еще подумалось: вполне возможно что этот скрипт использует flash загрузчик - это вполне может стать причиной пустой консоли firebug. Этот загрузчик в конце работы ожидает от скрипта некий ответ, а Вы вместо этого отправляете ему код переадресации. Надо посмотреть какой ответ отдает оригинальный скрипт. Ваш модуль должен отдавать точно такой же.
|
|
Вот что мне еще подумалось: вполне возможно что этот скрипт использует flash загрузчик - это вполне может стать причиной пустой консоли firebug. Этот загрузчик в конце работы ожидает от скрипта некий ответ, а Вы вместо этого отправляете ему код переадресации. Надо посмотреть какой ответ отдает оригинальный скрип. Ваш модуль должен отдавать точно такой же. да, именно flash и используется. Попробую, спасибо Вам за наводку |
|
Хм.. "поковырялся" немного, вроде бы ничего особенного.. Обработчик просто ловит то что передано аплоадером... Проверил - .swf, конечная папка куда все ложится, - все пути указаны верно. Но словить что идет в 'script' : '/mymodule-upload_image.js' не получается.
Значит просто ничего не идет обработчику, и проблема наверное во flash.. |
|
Думаю, флеш не виноват. Попробуйте вставить в файл index.php в корне сайта что-то вроде
PHP file_put_contents($_SERVER['DOCUMENT_ROOT'].'/storage/request.log', print_r($_GET, true).print_r($_POST, true)); и посмотрите что приходит в результате запроса от флешки. Или же попробуйте использовать "тяжелую артиллерию" для анализа запросов (что-то на подобие IEInspector HTTP Analyzer). Почти наверняка данные просто куда-то не туда посылаются. Там еще может быть проблема с передачей сессии - флеш этим тоже грешит. И еще одно - флеш плеер посылает другой юзерагент, нежели браузер, так что обратите внимание в настройках сайта на опцию "Защита сессии": стоит установить ее в режим "ip", или вообще отключить на период тестирования. |
|
Вот что получилось:
PHP
Значит вся проблема в параметре 'folder', хотя я задавал 'folder' : 'image',. Действительно данные нетуда отправляются. Наверное баг в самом плагине. Спасибо Вам за помощь |
|
Да нет, вроде бы все нормально как раз... Осталось проверить содержимое массива $_FILES...
|
|
хм я думал что [folder] => /mymodule-upload_image.167/image - так не правильно.
Тогда, сейчас проверю $_FILES. Вот что в массиве $_FILES PHP
|
|
Ну вот видите... файл присылает. Теперь надо тоже самое проверить внутри модуля и посмотреть куда он сохраняет файл. А затем отдать флешке корректный ответ.
|
|
Ну вот видите... файл присылает. Теперь надо тоже самое проверить внутри модуля и посмотреть куда он сохраняет файл. А затем отдать флешке корректный ответ. Очень благодарен Вам за помощь, сам тут бы точно не разобрался... Посмотрел что приходит в пхп обработчик фото, - передается $_GET. Остальные 2 массива пусты. |
|
Ну вот видите... файл присылает. Теперь надо тоже самое проверить внутри модуля и посмотреть куда он сохраняет файл. А затем отдать флешке корректный ответ. Очень благодарен Вам за помощь, сам тут бы точно не разобрался... Посмотрел что приходит в пхп обработчик фото, - передается $_GET,$_REQUEST. Остальные 2 массива пусты. А каким образом теперь проследить путь куда сохраняется сам файл? Т.к. на сервер он не доходит...? |
|
Посмотрел что приходит в пхп обработчик фото, - передается $_GET,$_REQUEST. Остальные 2 массива пусты. А каким образом теперь проследить путь куда сохраняется сам файл? Т.к. на сервер он не доходит...? На сервер файл доходит: Text
Надо проверять на каком этапе у Вас теряются данные. Попробуйте предложенный код вставить в начало index.php модуля. Причем, немного его модифицировать: PHP
Так файл не будет перезаписываться при каждом запросе и Вы сможете отследить все запросы (если где-то сдвоенные проскакивают). |
|
Понял, от всей души благодарен Вам за помощь. Буду набираться опыта и знаний
Попробую довести поставленную задачу |
|
Добрый вечер! Все таки что - то да не так. Без jquery плагина, при загрузке в php аплоадер приходит массив $_FILES, и все ок.
PHP
С этим же плагином при идентичных php файлах далее index.php модуля ничего не доходит, в сам аплоадер доходит пустой массив...Данные теряються после index.php в корне модуля. |
|
То есть я правильно понимаю: в index.php модуля данные еще есть?
|
|
Я уже писал выше о проблемах которые надо решить при загрузке через флеш, но попробую написать еще раз:
1. Флеш корректно не передает идентификатор сессии. То есть отправляете файл как зарегистрированный пользователь, а приходит он уже от имени "гостя" - если у Вас стоит какая-то проверка прав, то их просто не хватит. Необходимо идентификатор сессии прикручивать к запросу ручками (наверняка в плагине есть такая опция). Собственно, об этом написано в самом первом пункте руководства по скрипту. 2. Флеш шлет другой юзерагент, нежели браузер, так что валидировать сессию по методу "ip+user_agent" нельзя, так как от браузера и от флеш-плагина они приходят разные. В итоге разрыв сессии и все прелести описанные в первом пункте. |
|
Я уже писал выше о проблемах которые надо решить при загрузке через флеш, но попробую написать еще раз: я сразу установил на "ip", что же, тогда буду дальше разбираться, спасибо! Да, в index.php все есть. |
|
А права как-то проверяете? если в index.php все приходит, а в обработчик нет - значит показывайте index.php
|
|
А права как-то проверяете? если в index.php все приходит, а в обработчик нет - значит показывайте index.php ok PHP
|
|
Спорим что $user_id у Вас равен -1 и, как следствие, access('add') возвращает false?
Если я прав - смотрите мое предыдущее сообщение. |
|
Спорим что $user_id у Вас равен -1 и, как следствие, access('add') возвращает false? Да, верно, ух и голову же я Вам заморочил своими вопросами Благодарю Вас. |