Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите новичку: отправка письма с сайта....
 
 автор: Den_Art.   (10.07.2005 в 22:43)   письмо автору
 
 

Доброго всем времени суток!
Я новичек в web программировании, поэтому прошу вашей помощи. Необходим пример странички со следующими полями: поле ввода Имени, поле ввода E-Mail'а, поле ввода Темы, поле ввода Письма и кнопка Отправить. Смысл в том, чтобы на мой почтовый ящик пришло письмо с этими данными. Прошу привести пример полного кода страницы, желательно с комментариями.
Заранее благодарен!

   
 
 автор: cheops   (11.07.2005 в 00:32)   письмо автору
 
   для: Den_Art.   (10.07.2005 в 22:43)
 

Вы сможете обнаружить такой скрипт в теме по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4204

   
 
 автор: Den_Art.   (11.07.2005 в 16:49)   письмо автору
 
   для: cheops   (11.07.2005 в 00:32)
 

Вы меня извините за непонятливость, но в PHP я не силен, да и там приведены отрывочные куски кода, которые без комментариев. Я пробовал это делать через формы, но при отправке задействуется Outlook, а хотелось бы сделать поудобнее - чтобы нажал кнопку и письмо отправилось (без подтверждения в Outlook'е). Если можно полный текст странички.... Спасибо!

   
 
 автор: Киналь   (11.07.2005 в 18:19)   письмо автору
 
   для: Den_Art.   (11.07.2005 в 16:49)
 

Вот, как раз недавно делал. Вроде так это делается.


<?php
  $comp
=htmlspecialchars($_POST['01Company_Name']);
$name=htmlspecialchars($_POST['02*Name']);
$title=htmlspecialchars($_POST['03Title']);
$addr=htmlspecialchars($_POST['04*Address']);
$code=htmlspecialchars($_POST['05Post_code']);
$tel=htmlspecialchars($_POST['07*TEL_Number']);
$fax=htmlspecialchars($_POST['08FAX_Number']);
$email=htmlspecialchars($_POST['09*E-Mail_Address']);
$msg=htmlspecialchars($_POST['11Question']);
?>
<html>

<head>
  <title>Отправка письма</title>
</head>

<body link=green vlink=green alink=green bgcolor=silver>
<center><b>
<?php
if (empty($name)) {die ("Вы не указали своё имя!
<a href=javascript:history.back()>&lt;&lt;Назад</a>"
);} else {
if (empty(
$email) or !preg_match("/[a-zA-Z0-9_]+@[a-zA-Z0-9^\.]+\.[a-z]{2,3}/i"$email))
{die (
"Не указан адрес электронной почты, либо он указан в неверном формате.
<a href=javascript:history.back()>&lt;&lt;Назад</a>"
);} else {
if (empty(
$msg)) {die ("Не заполнено поле \"Запрос\"!
<a href=javascript:history.back()>&lt;&lt;Назад</a>"
);} else {
?>
</b></center>

<br><br><br>
<div align=center
 style="padding:15;border-style:groove;background-color:#dddddd;margin=1cm">
 <font size=+1 color=darkred>
 Спасибо за ваше письмо! Мы постараемся
 ответить на него в ближайшее время.<br><br>
 <font><a href=../index.html>
 Вернуться на главную страницу</a></font>
 </font>
</div>



<?php

$subj
="Сообщение от посетителя сайта";

$body"
<br> ДАННЫЕ ОТПРАВИТЕЛЯ:<br><br>
Компания: 
$comp        <br>
Имя:      
$name            <br>
Должность:  
$title             <br>
Почтовый адрес:   
$addr            <br>
Почтовый код:  
$code   <br>
Телефон:  
$tel             <br>
Факс:  
$fax                    <br>
Электронная почта: 
$email         <br><br><br>
СООБЩЕНИЕ:<br><br>
$msg   <br><br>";

$email "вася@лопух.ру";

$headers "Content-Type: text/html; charset=windows-1251";

mail("$email""$subj""$body""$headers");

}
}
}
?>
</body>

</html>

   
 
 автор: Den_Art.   (11.07.2005 в 18:59)   письмо автору
 
   для: Киналь   (11.07.2005 в 18:19)
 

Что-то это нето, или это как-то надо переделать - выводит сразу что письмо отправлено, а ввода данных в поля нет....

   
 
 автор: cheops   (11.07.2005 в 19:04)   письмо автору
 
   для: Den_Art.   (11.07.2005 в 16:49)
 

Я имел ввиду вот этот скрипт
<? 
$adminmail 
"admin@mail.ru"
if(isset(
$a)) 

$email_array explode (","$email); 
for (
$i=0$i count($email_array); $i++) 

  
$mailheaders "Content-Type: text/plain; charset=windows-1251\n"
  
$mailheaders .= "From: admin <$adminmail>\n"
  
mail($email_array[$i], $subject$message$mailheaders); 

   print 
"<HTML><HEAD>\n"
   print 
"<META HTTP-EQUIV='Refresh' CONTENT='0; URL=test.php'>\n"
   print 
"</HEAD></HTML>\n"

?> 
<form method="post" action="test.php"> 
<input type="hidden" name="a"> 
вводим адреса <input type="text" name="email"> <br> 
<input type="text" name="subject"><br> 
<TEXTAREA name="message" rows=7 wrap=virtual cols=40></TEXTAREA> 
<BR> 
<INPUT type=submit value="Отослать"></form>

Разве он требует Outlook?

   
 
 автор: ADmexture   (11.07.2005 в 19:28)   письмо автору
 
   для: Den_Art.   (10.07.2005 в 22:43)
 

Можешь попробовать этот скрипт, коментарии присутствуют :)
Здесь 2 файла!


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Отправка письма</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
</head>

<body>
<form action=file.php method="post">
<table width="790" border="0">
  <tr>
    <td width="114">Имя:</td>
      <td width="666"><input type="text" name=name>&nbsp;</td>
  </tr>
  <tr>
    <td>E-mail:</td>
    <td><input type="text" name=e-mail></td>
  </tr>
  <tr>
    <td>Тема:</td>
    <td><input type="text" name=theme></td>
  </tr>
  <tr>
    <td>Письмо:</td>
      <td><textarea  cols="25" rows="5" name=body></textarea></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td> <input type="submit" value="Отправить"></td>
  </tr>
</table>
</form>
</body>
</html>

----------------------------------------------------------------------------------------------------------------------
//Это другой файл, с расширением *.php и под название file.php
<html>
<head>
<title>Отправка письма</title>
</head>
<body>
<?php

//Создание переменных
$name=$HTTP_POST_VARS['name'];
$email=$HTTP_POST_VARS['e-mail'];
$theme=$HTTP_POST_VARS['theme'];
$body=$HTTP_POST_VARS['body'];
//Проверка правильности адреса
if (!eregi('^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-\.]+$'$email))
{
         echo 
'Недопустимый адрес эллектронной почты. Пожалуйста, '
              
.'вернитесь на предыдущую страницу и попытайтесь еще раз.';
              exit;
}

//Адрес получателя
$toaddress 'mail@mail.ru';
//Тема письма
$subject 'Тема письма';
//Контент письма
$mailcontent 'Ваше имя: ' .$name"\n"
                
.'Ваш адрес: ' .$email"\n"
                
.'Ваша тема: ' .$theme"\n"
                
."Письмо:  \n" .$body."\n";
//Это адрес который отображается, когда письмо полученно, (между '' можно писать что угодно :))
$fromaddress 'From: www.site.ru';

mail$toaddress$subject$mailcontent$fromaddress);


?>
//Отображение письма
<p>Ваше письмо отправлено<br></p>
<?php echo($mailcontent); ?>
</body>

</html>

   
 
 автор: Den_Art.   (11.07.2005 в 20:48)   письмо автору
 
   для: ADmexture   (11.07.2005 в 19:28)
 

После нажатия на кнопку Отправить почему-то выводится на экран листинг файла file.php??? В чем ошибка?

   
 
 автор: Киналь   (11.07.2005 в 22:25)   письмо автору
 
   для: Den_Art.   (11.07.2005 в 20:48)
 

В том, что вы, наверное, открываете файл с формой двойным кликом, поскольку виртуального сервера у вас нет. Так? Если да, то либо верьте на слово, что скрипт работает, либо ставьте Апач (или Денвер).

   
 
 автор: ADmexture   (12.07.2005 в 08:10)   письмо автору
 
   для: Киналь   (11.07.2005 в 22:25)
 

Ну вообщето скрипт работает, а Апач (и все такое), конечно лучше поставить!

Косяк: где написанно //Отображения письма , лучше загнать в <?php ?>, или совсем убрать.

   
 
 автор: Den_Art.   (12.07.2005 в 19:45)   письмо автору
 
   для: ADmexture   (12.07.2005 в 08:10)
 

Спасибо всем. Если говорите работает - значит так оно и есть. Буду проверять уже на серваке... Еще раз спасибо за участие!

   
 
 автор: Den_Art.   (14.07.2005 в 23:44)   письмо автору
 
   для: ADmexture   (12.07.2005 в 08:10)
 

Это опять я. Сегодня проверил на сервере - не работает. Нажимаю отправить, открывается пустая страничка .php и все! Посмотрите пожалуйста, может где ошибка. Спасибо.

   
 
 автор: behrad   (15.07.2005 в 17:20)   письмо автору
 
   для: Den_Art.   (14.07.2005 в 23:44)
 

a ti postav kavichki v action="file.php"
<form action="file.php" method="post">
doljno zarabotat , esli shto govari

   
 
 автор: Киналь   (17.07.2005 в 00:35)   письмо автору
 
   для: Den_Art.   (14.07.2005 в 23:44)
 

А сервер РНР поддерживает?

   
 
 автор: alex_loko   (26.02.2006 в 00:45)   письмо автору
 
   для: ADmexture   (11.07.2005 в 19:28)
 

по поводу файла file.php
Лично я взял себе за правило любой файл с пхпэшным скриптом начинать с
<?php
?>
<html><head></head><body>
Два вагона тра-ля-ля на html и или ПХП
</body></html>
И заканчивать с
<?php
?>
Хотя это просто привычка - но иногда полезно

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования