[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Подстановка данных в тело письма.
vertraut
У меня такая проблема, пишу скрипт отправки письма. Необходимо в письмо подставить Имя человека который отправляет письмо и имя человека, который получает письмо.
Сделать это у меня получилось только тогда, когда текст письма заранее прописан. А мне нужно, чтобы человек мог отредактировать письмо так как ему нужно, выставил "якоря", после чего, файл обработчик каким-то способом заменил якоря на нужные переменные.

Как это можно реализовать??? sad.gif sad.gif sad.gif



Спустя 5 минут, 45 секунд (20.12.2009 - 21:11) Romms написал(а):
код в студию!

Спустя 8 минут, 41 секунда (20.12.2009 - 21:19) vertraut написал(а):
Это файл форм



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
<link href="../style.css" rel="stylesheet" type="text/css" />
</head>

<body>
<form id="form1" name="form1" method="post" action="add.php">
<p class="videleniy_text">1. Введите свои данные.</p>
<table width="95%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="31%"><label>Ваше имя*:
<input type="text" name="main_name" id="main_name" />
</label></td>
</tr>
</table>
<p class="videleniy_text">2. При надобности измените текст письма.</p>
<p>
<label>Тема письма*:<br />
<input name="tems" type="text" id="tems" value="&quot;.name.&quot;! Хороший сайт. Настоятельно рекомендую." size="100" maxlength="100" />
</label>
</p>

<label>Текст письма*:<br />
<textarea name="text" cols="100" rows="17" id="text">Привет, %FRIENDS_NAME%.

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

Вот ссылка:
%LINK%

Чтобы скачать уроки, введи свое имя и e-mail в форму
ниже на странице. Ссылка с доступом прейдет к тебе
на почту в течение нескольких минут.

Удачи!

%NAME%</textarea>
<br />
<br />
Внимание! Не изменяйте и не удаляйте маркеры %FRIENDS_NAME%, %NAME%, %LINK%,<br />
которые автоматически будут заменены на ваше имя, имя друга и адрес сайта.<br />
<br />
<span class="videleniy_text">3. Укажите имя и e-mail адрес знакомого<br />
</span>
<br />
</label>
<table width="95%" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="19%"><label>Имя*:<br />
<input type="text" name="name" id="name" />
</label></td>
<td width="81%"><label>E-mail*:<br />
<input type="text" name="mail" id="mail" />
</label></td>
</tr>
</table>
<label><br />
<br />
<br />
</label>
<p>
<label>
<input type="submit" name="submit" id="submit" value="отправить &gt;&gt;" />
</label>
</p>
</form>
</body>
</html>

Спустя 2 минуты, 9 секунд (20.12.2009 - 21:21) vertraut написал(а):
Это обработчик!



<?php
include ("blocks/bd.php"); /*Соединяемся с базой*/
/*echo $_POST['name'];
echo $_POST['mail'];*/
if (isset($_POST['name'])) {$name = $_POST['name']; if ($name == '') {unset($name);}}
if (isset($_POST['mail'])) {$mail = $_POST['mail']; if ($mail == '') {unset($mail);}}
if (isset($_POST['main_name'])) {$main_name = $_POST['main_name']; if ($main_name == '') {unset($main_name);}}
if (isset($_POST['main_mail'])) {$main_mail = $_POST['main_mail']; if ($main_mail == '') {unset($main_mail);}}
if (isset($_POST['tems'])) {$tems = $_POST['tems']; if ($tems == '') {unset($tems);}}
if (isset($_POST['text'])) {$text = $_POST['text']; if ($text == '') {unset($text);}}

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<title>Untitled Document</title>
</head>

<body>

<?php
if (isset($name) && isset($mail))
{
$name=trim($name);
$mail=trim($mail);
$main_name=trim($main_name);
$main_mail=trim($main_mail);
$tems=trim($tems);
$text=trim($text);

$name = stripslashes($name);
$mail = stripslashes($mail);
$main_name = stripslashes($main_name);
$main_mail = stripslashes(main_mail);
$tems = stripslashes($tems);
$text = stripslashes($text);



$address = "$mail";
$subject = "$tems";
$message = "$text";
mail($address,$subject,$message,"Content-type:text/plain; Charset=windows-1251\r\n");

/* Здесь пишем что можно заносить информацию в базу */
$result = mysql_query ("INSERT INTO users (name, mail) VALUES ('$name', '$mail')");

if ($result == 'true') {echo "<p>Вы успешно отправили письмо</p>";}
else {echo "<p>Вы не отправили письмо!</p>";}


}
else

{
echo "<p>Вы ввели не всю информацию, поэтому письмо не отправилось.</p>";
}



?>

</body>
</html>

Спустя 1 минута, 3 секунды (20.12.2009 - 21:22) vertraut написал(а):
Как мне %NAME% заменить на $main_name????
Ну и все остальное!

Спустя 4 минуты, 12 секунд (20.12.2009 - 21:27) Romms написал(а):
так бы сразу...(только весь код страницы не надо вставлять)
можно так
$text=preg_replace('/%FRIENDS_NAME%/s', $friends_name, $text);
$text=preg_replace('/%LINK%/s', $link, $text);
...


Спустя 2 минуты, 1 секунда (20.12.2009 - 21:29) vertraut написал(а):
а можно с комментарием сточки?

Спустя 1 минута, 19 секунд (20.12.2009 - 21:30) Romms написал(а):
Цитата
а можно с комментарием сточки?

непонял... что комментировать?
$text - тут твой тест значения в котором нужно заменить

Спустя 50 секунд (20.12.2009 - 21:31) vertraut написал(а):
ну вот эту строку
$text=preg_replace('/%LINK%/s', $link, $text);


Спустя 3 минуты, 6 секунд (20.12.2009 - 21:34) Romms написал(а):
Цитата
mixed preg_replace  ( mixed $pattern  , mixed $replacement  , mixed $subject  [, int $limit = -1  [, int &$count  ]] )

Searches subject for matches to pattern and replaces them with replacement .

Проще:
функция ищет %LINK% заменяет на $link в строке $text

Спустя 4 минуты, 30 секунд (20.12.2009 - 21:38) vertraut написал(а):
Огромное спасибо!!!
можете еще помочь???
Мне нужно чтоб данное письмо отправлялось нескольким адресатам. Причем количество адресатов заранее неизвестно. Как реализовать отправку нескольким адресатам и добавление или удаления форм?

Спустя 2 минуты, 57 секунд (20.12.2009 - 21:41) Romms написал(а):
Цитата
количество адресатов заранее неизвестно

а так можно? smile.gif

Спустя 2 минуты, 38 секунд (20.12.2009 - 21:44) Romms написал(а):
Вот тебе код
$emailList = getAllEmails();
foreach($emailList as $oneEmail){
sendmail($oneEmail, $spamObject, $spamBody);
}

функция getAllEmails(); выдает массив нужных тебе мыл... она не стандартная, её надо самому писать smile.gif

Спустя 2 минуты, 51 секунда (20.12.2009 - 21:47) vertraut написал(а):
да, так было сделано на одном сайте, и там можно было нажать на "+" добавить форму, нажать на "-" убрать форму

<tr><td colspan="2" align="center"><h3>3. Введите имена и e-mail адреса друзей:</h3></td></tr>
<
tr><td colspan="2" align="center">
<
table border="0" width="330">
<
TBODY id="erows">
<
tr><td>Имя<span class="require">*</span></td><td>E-mail<span class="require">*</span></td><td width="20"> </td></tr>
<
tr id="u_1"><td><input type="text" name="u_name[]"/></td><td><input type="text" name="u_mail[]"/></td><td> </td></tr>
<
tr id="u_2"><td><input type="text" name="u_name[]"/></td><td><input type="text" name="u_mail[]"/></td><td> </td></tr>
<
tr id="u_3"><td><input type="text" name="u_name[]"/></td><td><input type="text" name="u_mail[]"/></td><td> </td></tr>
<
tr id="u_4"><td><input type="text" name="u_name[]"/></td><td><input type="text" name="u_mail[]"/></td><td><input type="button" value="-" onClick="del_row(4, event)" class="hand" title="Убрать" /></td></tr>
<
tr id="u_5"><td><input type="text" name="u_name[]"/></td><td><input type="text" name="u_mail[]"/></td><td><input type="button" value="-" onClick="del_row(5, event)" class="hand" title="Убрать" /></td></tr>
</
TBODY>
</
table>
<
br /><input type="button" id="add_row" value="Добавить друга" /></td></tr>

Спустя 1 минута, 6 секунд (20.12.2009 - 21:48) vertraut написал(а):
Ну и соответственно на все эти email отправлялись письма, и в каждое письмо подставлялись свои данные!

Спустя 5 минут, 55 секунд (20.12.2009 - 21:54) Romms написал(а):
biggrin.gif как это не извесно?
Как раз то известно(на время отправки письма)
Код "убрать, додать" поле, думаю сам напишешь а суть предложенного кода не меняется...
$emailList = $_POST[u_mail];
foreach($emailList as $oneEmail){
mail($oneEmail,$subject,$message,"Content-type:text/plain; Charset=windows-1251\r\n");
}

Спустя 5 минут (20.12.2009 - 21:59) vertraut написал(а):
Нет, я с php мало знаком, может вы мне поможете?

Спустя 4 минуты, 32 секунды (20.12.2009 - 22:03) Romms написал(а):
Цитата
Нет, я с php мало знаком, может вы мне поможете?

Ты про это:
Цитата
Код "убрать, додать" поле, думаю сам напишешь а суть предложенного кода не меняется...

так это JavaScript и другая тема wink.gif

Спустя 2 минуты (20.12.2009 - 22:05) vertraut написал(а):
А понятно! Так Вы не сможете мне помочь?

Спустя 37 секунд (20.12.2009 - 22:06) Romms написал(а):
новая тема... создавай!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.