Форум русской поддержки Joomla!® CMS
28.07.2017, 19:04:28 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Основной курс по Joomla
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Как сохранить слэши / при отправке формы?

 (Прочитано 189 раз)
0 Пользователей и 1 Гость смотрят эту тему.
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1269


желаю вам счастья


« : 06.07.2017, 11:42:57 »

Здравствуйте!

Столкнулся с тем, что в форме при её отправке надо передавать отмеченные чекбоксом значения путей к файлам, содержащие прямые слэши(/).
Вот так вставляю в форму то, что буду потом ловить при отработке задачи:
Код:
<td>
  <?php echo JHtml::_('grid.id', $i, $row->file_url); ?>
</td>
Когда потом получаю то, что было выбрано с помощью
Код:
JFactory::getApplication()->input->post->get('cid');
, то видно что пути приходят без слэшей.

Вопрос, как передавать и получать значения со слэшами?
« Последнее редактирование: 06.07.2017, 14:13:10 от borro » Записан
Aleks.Denezh
Практически профи
*******

Репутация: +375/-4
Online Online

Пол: Мужской
Сообщений: 2814



« Ответ #1 : 07.07.2017, 11:07:18 »

самое глупое что пришло в голову <?php echo JHtml::_('grid.id', $i,  base64_encode($row->file_url)); ?>
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1269


желаю вам счастья


« Ответ #2 : 07.07.2017, 12:19:27 »

самое глупое что пришло в голову <?php echo JHtml::_('grid.id', $i,  base64_encode($row->file_url)); ?>
Спасибо!
Почти справилась функция с задачей. Только русские буквы в названии файла коверкаются.
Пробовал такое:
Код:
echo JHtml::_('grid.id', $i, base64_encode((strtoupper(substr(PHP_OS, 0, 3)) === 'WIN')? iconv('windows-1251','UTF-8',$row->file_url):$row->file_url));
но не срабатывает. Есть идея, как отправлять и принимать при этом русские буквы в названиях правильно?
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +375/-4
Online Online

Пол: Мужской
Сообщений: 2814



« Ответ #3 : 07.07.2017, 12:37:33 »

единственное правильное решение это хранить ссылки на файле в базе и передаавать потом айддишники!
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1269


желаю вам счастья


« Ответ #4 : 07.07.2017, 12:41:51 »

единственное правильное решение это хранить ссылки на файле в базе и передаавать потом айддишники!
если хранить их в базе, то там русские буквы сохранятся правильно?
Записан
Septdir
Практически профи
*******

Репутация: +98/-3
Offline Offline

Пол: Мужской
Сообщений: 2009


Skype: septdir


« Ответ #5 : 07.07.2017, 12:46:37 »

JFactory::getApplication()->input->post->getAray('cid');
Просто get это для строки и уже с фильтрами. Так не совсем верно конечно, но по идеи должно работать
Записан
Aleks.Denezh
Практически профи
*******

Репутация: +375/-4
Online Online

Пол: Мужской
Сообщений: 2814



« Ответ #6 : 07.07.2017, 12:50:33 »

если хранить их в базе, то там русские буквы сохранятся правильно?
конечно!
Записан
SmokerMan
Профи
********

Репутация: +710/-26
Offline Offline

Пол: Мужской
Сообщений: 5366



« Ответ #7 : 07.07.2017, 13:37:48 »

Вопрос, как передавать и получать значения со слэшами?
Код:
JFactory::getApplication()->input->post->get('cid', null, 'string');
ибо по умолчанию там идет фильтр cmd по моему, поэтому слэши и вырезаются вместе с кирилицей
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1269


желаю вам счастья


« Ответ #8 : 07.07.2017, 13:44:00 »

Спасибо, Septdir и SmokerMan. Оба варианта рабочие
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1269


желаю вам счастья


« Ответ #9 : 07.07.2017, 14:02:21 »

Теперь Azn почему-то не удаляются файлы с русскими буквами в названии с помощью unlink:
Код:
unlink(JPATH_SITE.DS.$value);
при получении в параметры значения вида:
Цитировать
string 'C:\xampp_new\htdocs\asu170322\images/stories/virtuemart/product/834 — копия — копия — копия.jpg'
возвращает предупреждение:
Цитировать
Warning: unlink(C:\xampp_new\htdocs\asu170322\images/stories/virtuemart/product/834 — копия — копия — копия.jpg): No such file or directory in ...php on line 22
Если файл без кириллицы, то этой же строкой он удаляется из файловой системы.
Как в этом случае коду помочь? Azn
Записан
SmokerMan
Профи
********

Репутация: +710/-26
Offline Offline

Пол: Мужской
Сообщений: 5366



« Ответ #10 : 07.07.2017, 14:31:20 »

для начала проверить есть ли этот файл действительно и называется он так же или нет
Записан
borro
Живу я здесь
******

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 1269


желаю вам счастья


« Ответ #11 : 07.07.2017, 14:32:16 »

для начала проверить есть ли этот файл действительно и называется он так же или нет
да, есть, вот так называется:
Цитировать
834 — копия — копия — копия.jpg
все другие файлы из этой папки удаляются вышеприведенным unlink, если они без кириллицы
Записан
Septdir
Практически профи
*******

Репутация: +98/-3
Offline Offline

Пол: Мужской
Сообщений: 2009


Skype: septdir


« Ответ #12 : 07.07.2017, 22:37:00 »

Спасибо, Septdir и SmokerMan. Оба варианта рабочие
Вариант SmokerMan более верный.
Теперь Azn почему-то не удаляются файлы с русскими буквами в названии с помощью unlink:
Код:
unlink(JPATH_SITE.DS.$value);
при получении в параметры значения вида:возвращает предупреждение:Если файл без кириллицы, то этой же строкой он удаляется из файловой системы.
Как в этом случае коду помочь? Azn
Windows + кириллица убойная комбинация.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet