Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> form mailer php - небольшая проблемка 
:(
    Опции темы
keen_
Дата 19.3.2010, 13:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 14.9.2006
Где: Москва

Репутация: -3
Всего: -1



Подскажите пожалуйста что нужно исправить в PHP скрипте. Это веб-форма. Отправляемый текст приходит в почтовый ящик с подчёркиванием ( _ ) между словами, если в input указывается name состоящий из несколько слов с пробелами, например - name="Ближайшая станция метро".

Вот фрагмент формы:

<table>
<tr>
<td>Ближайшая станция метро:</td><td><input size="30" type="text" name="Ближайшая станция метро" maxlength="100"></td>
</tr>
<tr>
<td>Контактный телефон:</td><td><input size="30" type="text" name="Контактный телефон" maxlength="100"></td>
</tr>
<tr>
<td>Мобильный телефон:</td><td><input size="30" type="text" name="Мобильный телефон" maxlength="100"></td>
</tr>
</table>

А вот так приходит письмо в ящик:

Ближайшая_станция_метро: Тушинская
Контактный_телефон: 123456789
Мобильный_телефон: 123456789

А нужно чтобы было так:

Ближайшая станция метро: Тушинская
Контактный телефон: 123456789
Мобильный телефон: 123456789

Приаттачиваю папку со скриптом.

Спасибо 

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  pf_form_mailer.zip 3,57 Kb
PM MAIL WWW   Вверх
bars80080
Дата 19.3.2010, 15:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



есть предложение не использовать кириллицу в именах полей. скорее всего у вас в настройках пхп стоит конвертирование пробелов в знаки подчёркивания для них.

используйте латиницу, а если хотите всё-таки в письме кириллицу, то чуть-чуть перепишите код и будет вам счастье
PM MAIL WWW   Вверх
keen_
Дата 19.3.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 14.9.2006
Где: Москва

Репутация: -3
Всего: -1



Цитата(bars80080 @ 19.3.2010,  15:55)
есть предложение не использовать кириллицу в именах полей. скорее всего у вас в настройках пхп стоит конвертирование пробелов в знаки подчёркивания для них.

используйте латиницу, а если хотите всё-таки в письме кириллицу, то чуть-чуть перепишите код и будет вам счастье

Да лично мне пусть там будет хоть арабская бязь или японские иероглифы. Но в данном случае нужна кириллица.

Так ЧТО именно там нужно исправить, я это тут и спрашивал?

 smile

Это сообщение отредактировал(а) keen_ - 19.3.2010, 16:37
PM MAIL WWW   Вверх
skyboy
Дата 19.3.2010, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



так и должно быть:
Цитата(http://php.net/manual/en/language.variables.external.php)

Note: Dots and spaces in variable names are converted to underscores. For example <input name="a.b" /> becomes $_REQUEST["a_b"]. 

Либо отказывайся от кирилицы в именах полей и при формировании письма не просто
Код

foreach($_POST as $key => $item)
{
 $message .= $key . ': ' . $item;
}

а как-то так:
Код

$cyrillicNames  = array('nearest_metro'=> 'Ближайшая станция метро' ....);
foreach($_POST as $key => $item)
{
 $message .= $cyrillicNames[$key] . ': ' . $item;
}

Либо реши "в лоб": замени все подчеркивания на пробелы.



PM MAIL   Вверх
Ипатьев
Дата 19.3.2010, 17:01 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



я думаю, что сейчас автор повторит ту же самую фразу - что он и спрашивает, как заменить все подчеркивания на пробелы smile

на самом деле, это действително серьезная коммуникативная проблема. Представить человека, не имеющего представления о базовых строковых функциях, или там базовых операторах типа while - реально сложно. Это не укладывается в привычную картину мира, все время подспудно ищешь более сложную задачу в прочитанном вопросе, "не может же он быть действительно настолько примитивным" - думаешь ты.  Но ведь может. Это не говорит плохо ни о спрашивающем ни об отвечающем. Это просто разные миры, им трудно пересечься. Это просто надо учитывать.  Другое дело - несколько потребительское отношение многих посетителей к  форуму. 
PM MAIL   Вверх
keen_
Дата 19.3.2010, 17:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 14.9.2006
Где: Москва

Репутация: -3
Всего: -1



Цитата(Ипатьев @ 19.3.2010,  17:01)
я думаю, что сейчас автор повторит ту же самую фразу - что он и спрашивает, как заменить все подчеркивания на пробелы smile

на самом деле, это действително серьезная коммуникативная проблема. Представить человека, не имеющего представления о базовых строковых функциях, или там базовых операторах типа while - реально сложно. Это не укладывается в привычную картину мира, все время подспудно ищешь более сложную задачу в прочитанном вопросе, "не может же он быть действительно настолько примитивным" - думаешь ты.  Но ведь может. Это не говорит плохо ни о спрашивающем ни об отвечающем. Это просто разные миры, им трудно пересечься. Это просто надо учитывать.  Другое дело - несколько потребительское отношение многих посетителей к  форуму.

Да нет. Проблемы нет. Да и сайты я иногда делаю с прошлого тысячелетия.

Добавлено через 2 минуты и 1 секунду
Цитата(skyboy @ 19.3.2010,  16:54)
так и должно быть:
Цитата(http://php.net/manual/en/language.variables.external.php)

Note: Dots and spaces in variable names are converted to underscores. For example <input name="a.b" /> becomes $_REQUEST["a_b"]. 

Либо отказывайся от кирилицы в именах полей и при формировании письма не просто
Код

foreach($_POST as $key => $item)
{
 $message .= $key . ': ' . $item;
}

а как-то так:
Код

$cyrillicNames  = array('nearest_metro'=> 'Ближайшая станция метро' ....);
foreach($_POST as $key => $item)
{
 $message .= $cyrillicNames[$key] . ': ' . $item;
}

Либо реши "в лоб": замени все подчеркивания на пробелы.

Спасибо smile
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0605 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.