Ошибка при сохранении формы в админке

 
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2579
На одном хостинге (как я понял, это впс или вдс сервер) при сохранении формы в админке редиректит на страницу с адресом

notice: Undefined index: action in /var/www/*********/data/www/**********/templates/*********/assets/ui/form.tpl.php on line 22

и текстом

Firefox не знает, как открыть данный адрес, так как один из следующих протоколов (notice) не связан ни с одной программой или не разрешен в этом контексте.

Поглядел этот файл. Там строка

Код PHP:
  1. <form action="<?php echo $attributes['action']; ?>"
Атрибут экшн я передаю в форме, все как положено в docs

Код PHP:
  1. <?php $this->renderForm($form, $item, array('method'=>'post', 'action' => ''), $errors); ?>
Как быть? На таймвеб + хостия + денвер все ок.

Мои скудные познания говорят, что нужно отключить показ notice на сайте, так как action = '' получается не определена и на это ругается пхп?
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3617
Zau4man, адрес страницы куда редиректит такой:
notice: Undefined index: action in /var/www/*********/data/www/**********/templates/*********/assets/ui/form.tpl.php on line 22
???
А версия пхп там "нормальная"?
Реклама
cms
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2579
Loadырь:
А версия пхп там "нормальная"?
Сейчас уточню у него данные хостинга. Сам удивился такому редиректу и даже ума не приложу, как такое может получиться.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Zau4man, покажите непосредственно экшен, где обрабатывается форма. Кроме этого, в шаблоне /assets/ui/form.tpl.php перед строкой
Код PHP:
  1. $is_ajax = $attributes['method']=='ajax';
добавьте
Код PHP:
  1. dump($attributes);
перейдите на страницу формы и покажите сюда что выведет.

Судя по всему, у вас где то массив $attributes перетирается.

Zau4man:
и даже ума не приложу, как такое может получиться.
в это поле просто у вас пишется ошибка
Zau4man:
notice: Undefined index: action in /var/www/*********/data/www/**********/templates/*********/assets/ui/form.tpl.php on line 22
и форма содержимое этого атрибута понимает как адрес для сабмита, все логично.
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2579
Fuze:
покажите непосредственно экшен, где обрабатывается форма.
Экшн простой

Код PHP:
  1. <?php
  2.  
  3. class actionYoutubeAdd extends cmsAction
  4. {
  5. public function run()
  6. {
  7. $errors = false;
  8.  
  9. $form = $this->getForm('task');
  10.  
  11. $submit = $this->request->has('submit');
  12.  
  13. $item = $form->parse($this->request, $submit);
  14.  
  15. $model = cmsCore::getModel('youtube');
  16.  
  17. if($submit)
  18. {
  19. $errors = $form->validate($this, $item);
  20. if($errors)
  21. cmsUser::addSessionMessage(LANG_YOUTUBE_SAVE_ERROR,'error');
  22. else
  23. {
  24. $id = $model->saveTask($item);
  25. cmsUser::addSessionMessage(LANG_YOUTUBE_SAVE_DONE);
  26. $this->redirectTo('admin/controllers/edit/youtube');
  27. }
  28. }
  29.  
  30. return cmsTemplate::getInstance()->render('form_task', array(
  31. 'do' => 'add',
  32. 'form' => $form,
  33. 'item' => $item,
  34. 'errors' => $errors,
  35. ));
  36.  
  37.  
  38. }
  39. }
Fuze:
перейдите на страницу формы и покажите сюда что выведет.
Код PHP:
  1.  
  2. (
  3. [method] => post
  4. )
  5.  
Fuze:
Судя по всему, у вас где то массив $attributes перетирается.
Звучит логично, но почему только на одном сайте...

хм. атрибуты формы выглядят так

Код HTML:
  1. <form action="
  2. Notice: Undefined index: action in /var/www/*********/data/www/********/templates/******/assets/ui/form.tpl.php on line 22
  3. " method="post" enctype="multipart/form-data" accept-charset="utf-8">
phpinfo() хостинга
Редактировалось: 2 раз (Последний: 8 июля 2015 в 20:54)
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Zau4man, тогда кроме как то, что системные классы изменены, других вариантов нет. Может сам файл /assets/ui/form.tpl.php изменен.
Сравните этот файл с дефолтным, а так же сравните метод renderForm класса cmsTemplate с дефолтным.
Я так понимаю, это проблема у клиента, а не у вас.

Zau4man:
хм. атрибуты формы выглядят так
о чем я выше и написал
Редактировалось: 1 раз (Последний: 8 июля 2015 в 21:02)
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2579
Fuze:
тогда кроме как то, что системные классы изменены, других вариантов нет. Может сам файл /assets/ui/form.tpl.php изменен.
Сравните этот файл с дефолтным, а так же сравните метод renderForm класса cmsTemplate с дефолтным.
файлы одинаковые. И форм и классов.

А может быть ошибка из-за неправильных настроек прав доступа к файлам? Попытка сменить шаблон с клиентского на default приводит к получению ошибки

Ошибка перезаписи файла конфигурации
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
InstantCMS Team
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 4424
Zau4man:
А может быть ошибка из-за неправильных настроек прав доступа к файлам?
нет
Zau4man:
Попытка сменить шаблон с клиентского на default приводит к получению ошибки
поставьте файлу конфигурации системы права 777 временно.
/system/config/config.php

Тогда только пошаговая отладка посредством dump();

в методе renderForm делайте dump($attributes); смотрите что там. должно быть то, что вы передали в
Код PHP:
  1. <?php $this->renderForm($form, $item, array('method'=>'post', 'action' => ''), $errors); ?>
т.е.
array('method'=>'post', 'action' => '')
Видео каталог для InstantCMS | Аудио каталог для InstantCMS | Мы Вконтакте | Предложение для спонсоров
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.