Rambler's Top100
, : |

! : http://dreamweaver.net.ru/new-forum/

| FAQ | | |

Форма отправки e-mail на PHP

 
  ,         .     ,        .     Форум Macromedia Dreamweaver -> Динамические страницы
 
Денис
Модератор

Модератор


: 43

: 21.08.2004
: 1490
: Санкт-Петербург

: 19, 2005 8:18 pm     : Форма отправки e-mail на PHP

Позволю себе опубликовать письмо, пришедшее мне в частном порядке:

dobsa ():

Подскажите пожалуйста!!! Есть форма отправки почты и PHP скрипт, будут ли ОНИ работать? (
---------------------------------
HTML
---------------------------------

<table width=600 border=0 cellspacing=5 cellpadding=5>
<tr>
<td>
<form action=action.php method="post" name=feedback onsubmit='return feed()'>
<p class="feed">Поля, отмеченные звездочкой, обязательны для заполнения.</p>
<p class="fedd1">*&nbsp;Ф.И.О.</p><input class=input1 type=text size=50 maxlength=100 name=client>
<br>
<p class=fedd1>*&nbsp;Адрес электронной почты</p><input class=input1 type=text size=50 maxlength=100 name=email>
<br>
<p class="fedd1">Тема сообщения</p><input class=input1 type=text size=50 maxlength=100 name=subj>
<br>
<p class=fedd1>*&nbsp;Текст сообщения</p><textarea class=input1 cols=50 rows=7 name=txt></textarea>
<br>
<br>
<input type=submit value='Отправить сообщение'></form>
</td>
</tr>
</table>

-----------------------------------
PHP
-----------------------------------

<?php
$message=("
Name : $client
Telephon : $tel
Subject : $subj
Text message : $txt");
mail("dobsa@mail.ru", $emai, $message); ?>


Смею Вас заверить, что данная форма работать не будет хотя бы потому, что даже в HTML у ошибки: аргументы тегов не взяты в кавычки. К тому же, полным-полно других ошибок (в PHP).

Вот как должна выглядет простейшая форма отправки сообщений:

[code:1:fb1a29718b]
<?
# Лучше всего изначально сохранить этот файл
# как .php - так оно надежнее будет
# Для начала определим, когда должна выводиться форма отправки
# а когда должен работать скрипт
if(!@$_POST['mail']) # Если кнопка отправки еще не нажата
{
echo '<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr><td><form name="form1" method="post" action="'.@$_SERVER['PHP-SELF'].'">
<p>Поля, отмеченные звездочкой * обязательны для заполнения!</p>
<p>Фамилия, Имя, Отчество*<br><input name="fio" type="text" id="fio"></p>
<p>Ваш адрес эл. почты*<br><input name="mail" type="text" id="mail"></p>
<p>Тема сообщения<br><input name="subj" type="text" id="subj"></p>
<p>Текст сообщения<br><textarea name="message" id="message"></textarea></p>
<p><input name="mail" type="submit" id="mail" value="Отправить сообщение"></p>
</form></td></tr></table>';
# В значении аргумента ACTION тега FORM использована серверная переменная $_SERVER['PHP-SELF'], которая возвращает адрес этого же файла, например: http://localhost/form.php. Таким образом, мы замыкаем скрипт на самого себя
}
else # Если же кнопку нажали
{
$message=''; # Сначала обозначаем переменную сообщения
# Добавляем имя клиента:
$message.='Name: '.@$_POST['fio'].'<br>';
# Добавляем адрес эл. почты:
$message.='E-mail: '.@$_POST['mail'].'<br>';
# Добавляем собственно текст сообщения:
$message.='Message : '.@$_POST['message'].'<br>';
# Теперь передаем переменную $message в функцию mail():
mail('your@e-mail.com', @$_POST['subj'], $message);
}
# Вот и все. Единственный момент - после $message в функции mail() лучше всего добавить заголовки,
# которые идут в самом начале каждого сообщения e-mail. Эти заголовки я описывать здесь не буду,
# т.к. информации на эту тему в И-нете полно: введите "функция mail" в Рамблере и получите кучу информации
?>
[/code:1:fb1a29718b]
mfd
Новичок

Новичок


: 48

: 17.12.2005
: 26

: 23, 2005 1:52 pm     :

Есть хороший скрипт для отправки писем с сайта от TSB Scripts http://tsbs.ru/index.php?menu=scripts&script=tsbmailer

Как вы относитесь к таким, более сложно выполненым скриптам?
Денис
Модератор

Модератор


: 43

: 21.08.2004
: 1490
: Санкт-Петербург

: 23, 2005 7:59 pm     :

mfd, на самом деле, более сложно выполненные скрипт именно так выполнены для того, чтобы более быстро и максимально просто "встать" на абсолютно любом сайте. Главное во всех скриптах - их нормальная работа.
mfd
Новичок

Новичок


: 48

: 17.12.2005
: 26

: 23, 2005 9:41 pm     :

Я тоже так считаю. И поэтому вышеуказанный скрипт сам использую.
banyman
Новичок

Новичок


: 39

: 17.07.2006
: 7

: 17, 2006 4:01 pm     :

mfd ():
Я тоже так считаю. И поэтому вышеуказанный скрипт сам использую.
Люди, не поможете со скриптом. Нужен рнр скрипт анкеты, чтобы там были данные:
ФИО
Страна
Город
Телефон
Серия паспорта
Е-маил
В таком духе, и чтобы на е-маил админу данные уходили.
Буду благодарен любой помощи! Может у кого-то есть скрипт - удружите! Сбросьте на мыло banyman@bk.ru
Денис
Модератор

Модератор


: 43

: 21.08.2004
: 1490
: Санкт-Петербург

: 17, 2006 7:29 pm     :

banyman, чем не устраивает этот скрипт? Его надо только лишь чуть переделать.
banyman
Новичок

Новичок


: 39

: 17.07.2006
: 7

: 18, 2006 11:12 am     :

Да я пока не секу в рнр... но знаю, что доработать можно было бы...
может кто может помочь?
banyman
Новичок

Новичок


: 39

: 17.07.2006
: 7

: 18, 2006 4:30 pm     :

Денис,
Вот я тут попытался кое чего переделать, но забросив на хост файл для теста.. ничего не вышло. Посмотрите пожалуйста в чем ошибка, и подскажите: весь этот код – это один файл *.php? его можно вставить в html шаблон и он будет работать (только html на php переименовать)?



<?
# Лучше всего изначально сохранить этот файл
# как .php - так оно надежнее будет
# Для начала определим, когда должна выводиться форма отправки
# а когда должен работать скрипт
if(!@$_POST['mail']) # Если кнопка отправки еще не нажата
{
echo '<table width="600" border="0" cellspacing="0" cellpadding="0">
<tr><td><form name="form1" method="post" action="'.@$_SERVER['PHP-SELF'].'">
<p>Поля, отмеченные звездочкой * обязательны для заполнения!</p>
<p>Фамилия, Имя, Отчество*<br><input name="fio" type="text" id="fio"></p>
<p>Дата Рождения*<br><input name="dr" type="text" id="dr"></p>
<p>Паспорт серия/номер*<br><input name="pasport" type="text" id="pasport"></p>
<p>Дата выдачи*<br><input name="dv" type="text" id="dv"></p>
<p>Кем выдан*<br><textarea name="ho_pass" id="ho_pass"></textarea></p>
<p>Страна*<br><input name="cap" type="text" id="cap"></p>
<p>Город*<br><input name="city" type="text" id="city"></p>
<p>Адрес фактического проживания (полностью)*<br><textarea name="live" id="live"></textarea></p>
<p>Адрес прописки*<br><textarea name="adres_live" id="adres_live"></textarea></p>
<p>Почтовый индекс*<br><input name="poust_index" type="text" id="poust_index"></p>
<p>Телефон (с кодом города)*<br><input name="tel" type="text" id="tel"></p>
<p>Мобильный телефон<br><input name="mobil" type="text" id="mobil"></p>
<p>E-mail для связи*<br><input name="mail" type="text" id="mail"></p>
<p>Ваша цель:*<br>
1. Покупать косметику со скидкой для себя<br>
2. Зарабатывать на продажах<br>
3. Строить собственный бизнес с компанией Орифлэйм<br>
(введите цифру соответствующего пункта)<br><input name="subj" type="text" id="subj"></p>
<p>Немного о себе*<br>
Семейное положение<br>
Образование<br><textarea name="message" id="message"></textarea></p>
<p><input name="mail" type="submit" id="mail" value="Отправить сообщение"></p>
</form></td></tr></table>';
# В значении аргумента ACTION тега FORM использована серверная переменная $_SERVER['PHP-SELF'], которая возвращает адрес этого же файла, например: http://localhost/form.php. Таким образом, мы замыкаем скрипт на самого себя
}
else # Если же кнопку нажали
{
$message=''; # Сначала обозначаем переменную сообщения
# Добавляем имя клиента:
$message.='Name: '.@$_POST['fio'].'<br>';
# Добавляем дату рождения:
$message.='Dr: '.@$_POST['dr'].'<br>';
# Добавляем серию паспорта:
$message.='Pasport: '.@$_POST['pasport'].'<br>';
# Добавляем дату выдачи паспорта:
$message.='Dv: '.@$_POST['dv'].'<br>';
# Кем выдан паспорт:
$message.='Ho_pass: '.@$_POST['ho_pass'].'<br>';
# Добавляем страну:
$message.='Cap: '.@$_POST['cap'].'<br>';
# Добавляем город:
$message.='City: '.@$_POST['city'].'<br>';
# Адрес фактического проживания:
$message.='Live: '.@$_POST['live'].'<br>';
# Адрес прописки:
$message.='Adres_live: '.@$_POST['adres_live'].'<br>';
# Добавляем почтовый индекс:
$message.='Poust_index: '.@$_POST['poust_index'].'<br>';
# Добавляем телефон:
$message.='Tel: '.@$_POST['tel'].'<br>';
# Добавляем мобильный телефон:
$message.='Mobil: '.@$_POST['mobil'].'<br>';
# Добавляем адрес эл. почты:
$message.='E-mail: '.@$_POST['mail'].'<br>';
# Добавляем собственно текст сообщения:
$message.='Message: '.@$_POST['message'].'<br>';
# Теперь передаем переменную $message в функцию mail():
mail('banyman@bk.ru', @$_POST['subj'], $message);
}
?>
Денис
Модератор

Модератор


: 43

: 21.08.2004
: 1490
: Санкт-Петербург

: 19, 2006 5:30 am     :

:

забросив на хост файл для теста.. ничего не вышло


А что вышло? А хост PHP поддерживает?
banyman
Новичок

Новичок


: 39

: 17.07.2006
: 7

: 19, 2006 9:26 am     :

http://www.neck.h10.ru
Поддерживает!
banyman
Новичок

Новичок


: 39

: 17.07.2006
: 7

: 19, 2006 9:39 am     :

http://www.neck.h10.ru/mail.php
А не... работает Wink а чё - клево Wink
спасибо!
banyman
Новичок

Новичок


: 39

: 17.07.2006
: 7

: 19, 2006 4:24 pm     :

А каким образом делается следующее:
Чтобы выходили сообщения о принятом сообщении, или о не заполненных полях?
Денис
Модератор

Модератор


: 43

: 21.08.2004
: 1490
: Санкт-Петербург

: 19, 2006 7:31 pm     :

banyman, учите матчасть (PHP)
BETEP
Новичок

Новичок


: 40

: 21.07.2007
: 12

: 24, 2008 11:03 pm     :

у меня форма обратной связи примерно такая же как эта форма
banyman ():
Денис,

{
$message=''; # Сначала обозначаем переменную сообщения
# Добавляем имя клиента:
$message.='Name: '.@$_POST['fio'].'<br>';
# Добавляем дату рождения:
$message.='Dr: '.@$_POST['dr'].'<br>';
# Добавляем серию паспорта:
$message.='Pasport: '.@$_POST['pasport'].'<br>';
# Добавляем дату выдачи паспорта:
$message.='Dv: '.@$_POST['dv'].'<br>';
# Кем выдан паспорт:
$message.='Ho_pass: '.@$_POST['ho_pass'].'<br>';
# Добавляем страну:
$message.='Cap: '.@$_POST['cap'].'<br>';
# Добавляем город:
$message.='City: '.@$_POST['city'].'<br>';
# Адрес фактического проживания:
$message.='Live: '.@$_POST['live'].'<br>';
# Адрес прописки:
$message.='Adres_live: '.@$_POST['adres_live'].'<br>';
# Добавляем почтовый индекс:
$message.='Poust_index: '.@$_POST['poust_index'].'<br>';
# Добавляем телефон:
$message.='Tel: '.@$_POST['tel'].'<br>';
# Добавляем мобильный телефон:
$message.='Mobil: '.@$_POST['mobil'].'<br>';
# Добавляем адрес эл. почты:
$message.='E-mail: '.@$_POST['mail'].'<br>';
# Добавляем собственно текст сообщения:
$message.='Message: '.@$_POST['message'].'<br>';
# Теперь передаем переменную $message в функцию mail():
mail('banyman@bk.ru', @$_POST['subj'], $message);
}
?>

но у меня все введенные поля приходят в письме одной строкой. как сделать что бы каждая введенная инфа была отдельной строкой в письме.
я предпологаю, что это должно делаться с помошью '<br>' (отображается в тексте письма), убираю кавычки и получаю в экспорере:
Parse error: syntax error, unexpected '<' in /home/iscarru/public_html/autozap/config.php on line 9

Хэлп. задача явно простая, но я не осилил
Денис
Модератор

Модератор


: 43

: 21.08.2004
: 1490
: Санкт-Петербург

: 28, 2008 1:51 pm     :

Ну так Вам написали, что в файле /home/iscarru/public_html/autozap/config.php в 9-й строчке ошибка - неожиданный символ <. Открывайте этот файл в Dreamweaver, переходите на 9-ю строчку и тщательно проверяйте весь синтаксис. Особое внимание - кавычкам и точкам с запятыми.
:   
  ,         .     ,        .     Форум Macromedia Dreamweaver -> Динамические страницы : GMT + 2
1 1

 


Powered by phpBB © 2001, 2005 phpBB Group
phpBB


/ : 137759 / 0

Rambler's Top100 @Mail.ru