Перейти к публикации

Дополнительные поля (форма обратной связи)


Рекомендованные сообщения

Доброго времени.

Я очень поверхностно знаю РНР. Пытаюсь делать все методом проб и ошибок, но застрял. По этой причине прошу подсказать решение.

Нужно добавить 2-3 поля в форму обратной связи в версии 9.3.

Я прошёлся поиском по форуму и нашел только эту статью. На её основе начал шаманить.

Вроде стало получаться. Правда не отправляло данные с дополнительных полей. И тут вроде разобрался и понял, что за отправку отвечает feedback.php в папке ajax. Код

$message = trim(stripslashes( convert_unicode($_POST['message'], $config['charset'] ) ) )

я изменил на
$message = trim(stripslashes( convert_unicode($_POST['message'], $config['charset'] ) ) ).trim(stripslashes( convert_unicode($_POST ['city'], $config['charset'] ) ) );

. Данные из поля 'city' стали отправляться. Но не могу решить вопрос с форматированием.

Письмо приходит в таком виде:

СообщениеГород

Я не могу разобраться как их разделить и перенести на новую строку, а так же сделать к ним надписи типа:

Сообщение: сообщеннице

Город: мегаполис

Зарание благодарен за помощь.

Изменено пользователем sion999
Ссылка на сообщение
Поделиться на других сайтах

Для переноса строки используйте: windows - "\r\n", unix - "\n", macos - "\n\r"

Ссылка на сообщение
Поделиться на других сайтах

Спасибо за ответ. Но.

При изменении кода пишет ошибку. Как только не пробывал.

Один из вариантов:

$message = trim(stripslashes( convert_unicode($_POST['message'], $config['charset'] ) ) ) '\n' .trim(stripslashes( convert_unicode($_POST ['city'], $config['charset'] ) ) );
В общем коде страницы есть такое:
	$not_allow_symbol = array ("\x22", "\x60", "\t", '\n', '\r', "\n", "\r", '\\', ",", "/", "¬", "#", ";", ":", "~", "[", "]", "{", "}", ")", "(", "*", "^", "%", "$", "<", ">", "?", "!", '"', "'" );

Может быть поэтому и ошибка?

Изменено пользователем sion999
Ссылка на сообщение
Поделиться на других сайтах
$message = trim(stripslashes( convert_unicode($_POST['message'], "\n", $_POST ['city'], $config['charset'] ) ) );

Изменено пользователем rSteLlMi
Ссылка на сообщение
Поделиться на других сайтах

rSteLlMi, тогда уж вот так:

$message = trim ( stripslashes ( convert_unicode ( $_POST['message'] . "\n" . $_POST ['city'], $config['charset'] ) ) );

Ссылка на сообщение
Поделиться на других сайтах

Всем ОГРОМНОЕ спасибо. Нужная цель достигнута.

В результате код получился такой:

$message = trim ( stripslashes ( convert_unicode ( $_POST['message'] . "\n".'Город: '.$_POST ['city'] . "\n".'Страна: '.$_POST ['country'], $config['charset'] ) ) );
вместо:
$message = trim(stripslashes( convert_unicode($_POST['message'], $config['charset'] ) ) )

Ссылка на сообщение
Поделиться на других сайтах

Вроде не в тему, но продолжение. Я создал вторую форму на базе feedback.

Вроде работает, но там ещё нужны доработки.

Столкнулся с проблемкой заголовка. В заголовке отображается так:

<title>Обратная связь &raquo; site.ru</title>

Где можно изменить этот тег. Я так понимаю за это отвечает feedback.php, которая лежит в modules, а не в ajax.

Но не могу понять где менять или прописать насильно ручками. Ведь <title> играет важную роль для поисковых систем. И не очень хочется иметь две страницы с одинаковым <title>.

В моём случае есть три дополнительные страницы feedback2.php + feedback2.php (в папках modules + ajax) и feedback2.tpl в templates.

Вот для этой формы и нужно поменять <title>.

Зарание благодарен.

Изменено пользователем sion999
Ссылка на сообщение
Поделиться на других сайтах

В результате код получился такой:

$message = trim ( stripslashes ( convert_unicode ( $_POST['message'] . "\n".'Город: '.$_POST ['city'] . "\n".'Страна: '.$_POST ['country'], $config['charset'] ) ) );

Вместо

. "\n".'Город: ' . 

используйте

. "\nГород: " . 

Ссылка на сообщение
Поделиться на других сайтах
  • 2 месяца спустя...

Сделал по тому же принципу и один черт не отправляет данные с дополнительных полей. Ответьте мне - если за отправку отвечает файл с папки ajax - то нам надо менять строку


$message = trim(stripslashes( convert_unicode($_POST['message'], $config['charset'] ) ) )

на

$message = trim ( stripslashes ( convert_unicode ( $_POST['message'] . "\n".'Город: '.$_POST ['city'] . "\n".'Страна: '.$_POST ['country'], $config['charset'] ) ) );

в файле который лежит в папке модулей? Или она остается неизменной?

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...