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

Форум PHP

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

 

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

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

тема: Вопрос по обратной связи
 
 автор: FL!p3r   (12.03.2012 в 14:37)   письмо автору
 
 

скачал готовый скрипт....
index.php выглядит так :


<?php
# В данном файле ничего менять не нужно, однако если у вас есть трудности с возвратом на указанную
# в настройках страницу, то отредактируйте строку 100 как указано в коментарии.
error_reporting(0);
require("./config.inc");
require("./header.inc");
# Функции
function formtohtml ($str) {
if (get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
$str = trim($str);
$str = htmlspecialchars ($str, ENT_QUOTES);
$str = str_replace("|", "/", $str);
$str = str_replace("\r", "", $str);
$str = str_replace("\n", "<br>", $str);
$str = eregi_replace("(<br>*){2,}","<br><br>",$str);
$str = eregi_replace("[ ]{2,}", " ", $str);
return $str;
}
function htmltoform ($str) {
$str = str_replace("&amp;", "&", $str);
$str = str_replace("&quot;", "\"", $str);
$str = str_replace("&#039;", "'", $str);
$str = str_replace("&lt;", "<", $str);
$str = str_replace("&gt;", ">", $str);
$str = str_replace("<br>", "\r\n", $str);
return $str;
}
# Отправка
if (!empty($_GET['a']) and $_GET['a'] == "m") {
$var['fields'] = array("name"=>"имя", "email"=>"e-mail", "subject"=>"заголовок", "message"=>"текст сообщения", "hotel"=>"текст сообщения");
$notice['error'] = array();
foreach ($var['fields'] as $key => $value) {
if (empty($_POST[$key]) || (($_POST[$key] = formtohtml($_POST[$key])) == "0")) $notice['error'][] = $value;
}
if (empty($notice['error'])) {
if (preg_match("/^([a-z,0-9,_,\-,\.])+\@([a-z,0-9,_,\-])+(\.([a-z,0-9])+)+$/",$_POST['email'])) {
$t['c'] = file($config['recip_f']);
$t['n'] = sizeof($t['c']);
for ($i=0;$i<$t['n'];$i++) {
$t['c'][$i] = explode("|",trim($t['c'][$i]));
}
if (!empty($_POST['recip']) and !empty($t['c'][$_POST['recip']-1])) {
$var['recip_n'] = $t['c'][$_POST['recip']-1][1];
$var['recip_e'] = $t['c'][$_POST['recip']-1][0];
if (function_exists("imap_binary")) {
function mail_convert($str) {
$str = trim(imap_binary(addcslashes($str, "\"!@\\!@(!@)")));
return $str;
}
$var['subj'] = "=?Windows-1251?B?".trim(imap_binary(htmltoform($_POST['subject'])))."?=";
$var['header'] = "From: =?Windows-1251?B?".mail_convert(htmltoform($_POST['name']))."?= <".$_POST['email'].">\r\n";
$var['header'] .= "MIME-Version: 1.0\r\n";
$var['header'] .= "Content-Transfer-Encoding: 8bit\r\n";
$var['header'] .= "Content-Type: text/plain; charset=\"Windows-1251\"\r\n";
$var['header'] .= "X-Mailer: PHP v.".phpversion();
$var['message'] = htmltoform($_POST['message']);
if (!empty($config['features'])) $var['message'] .= "\r\n\r\n---------------------------------------\r\nIP адрес отправителя: ".$_SERVER['REMOTE_ADDR'];
# Пытаемся послать сообщение
if (mail("=?Windows-1251?B?".mail_convert(htmltoform($var['recip_n']))."?= <".$var['recip_e'].">",$var['subj'],$var['message'],$var['header'])) {
$notice['ok'] = "Сообщение успешно отправлено";
}
else {
$notice['error'] = "Системная ошибка - сбой функции &quot;mail&quot;";
}
}
else {
$notice['error'] = "Ошибка программы - недоступна функция &quot;imap_binary&quot;";
}
}
else {
$notice['error'] = "Ошибка настоек программы - неверный получатель";
}
}
else {
$notice['error'] = "Пожалуйста, проверьте правильность e-mail";
}
}
else {
$notice['error'] = "Пожалуйста, введите ".implode(", ",$notice['error']);
}
}
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"0\">\r\n";
if (empty($notice['ok'])) {
echo "<form name=\"SM\" method=\"POST\" action=\"".$_SERVER['PHP_SELF']."?a=m\">\r\n";
}
else {
// ПРИ ВОЗНИКНОВЕНИИ ОШИБКИ "METHOD POST NOT ALLOWED" ИЗМЕНИТЬ "POST" на "GET"
echo "<form name=\"GT\" method=\"POST\" action=\"".$config['url_path']."\">\r\n";
}
# Сообщение о завершении / ошибке
if (!empty($notice)) {
echo "<tr><td align=\"center\">";
if (!empty($notice['ok'])) {
echo "<p><b><font color=\"#008000\">".$notice['ok']."!</font></b></p>";
}
elseif (!empty($notice['error'])) {
echo "<p><b><font color=\"#800000\">".$notice['error']."!</font></b></p>";
}
echo "</td></tr>\r\n";
}
# Вывод формы
if (empty($notice['ok'])) {
echo "<tr><td align=\"center\">";
require("./form.inc");
echo "</td></tr>\r\n";
}
echo "<tr><td align=\"center\"><table border=\"0\" cellpadding=\"5\" cellspacing=\"0\"><tr><td>";
# Кнопки
if (empty($notice['ok'])) {
echo "<input type=\"submit\" value=\"Отправить\"></td>\r\n";
echo "<td><input type=\"reset\" value=\"Сбросить\">\r\n";
}
else {
echo "<input type=\"submit\" value=\"".$config['url_name']."\">\r\n";
}
echo "</td></tr></table></td></tr>\r\n";
if (!empty($config['copyshow'])) {
echo "<tr><td align=\"center\"><font style=\"font-size: 10px;\"><a style=\"text-decoration: none\" href=\"http://www.jpcars.com/scripts/phpsendmail.zip\">PHPSendMail</a> v.2.1.2 © 2000-".date("Y")." <a style=\"text-decoration: none\" href=\"http://www.jpcars.com\" target=\"_blank\">JPCars.com</a></font></td></tr>\r\n";
}
echo "</form></table>\r\n";
# Футер
require("./footer.inc");
?>



вот сама форма :

<table border="1" cellpadding="6" cellspacing="0" bordercolor="#999999" bgcolor="#F5F5F5">
<tr>
<td>
<table border="0" cellpadding="3" cellspacing="0">
<tr>
<td align="right">
<p class="T">Ф.И.О.:</td>
<td nowrap><input style="width: 160px" class="F2" maxlength="35" name="name" <?php if (!empty($_POST['name'])) echo " value=\"".$_POST['name']."\""; ?>size="14"></td>
</tr>
<tr>
<td align="right">
<p class="T">E-Mail:</td>
<td><input style="width: 160px" class="F2" maxlength="35" name="email" <?php if (!empty($_POST['email'])) echo " value=\"".$_POST['email']."\""; ?>size="14"></td>
</tr>
<tr>
<td align="right">
<p class="T">Заголовок:</td>
<td><input style="width: 200px" class="F2" maxlength="45" name="subject" <?php if (!empty($_POST['subject'])) echo " value=\"".$_POST['subject']."\""; ?>size="14"><a style="color: #F5F5F5; text-decoration: none" target="_blank" href="http://www.jpcars.com">.</a><a style="color: #F5F5F5; text-decoration: none" target="_blank" href="http://www.jpcars.ru">.</a></td>
</tr>
<?php
$t['c'] = file($config['recip_f']);
$t['n'] = sizeof($t['c']);
if ($t['n'] > 1) {
echo " <tr>\r\n";
echo " <td align=\"right\">\r\n";
echo " <p class=\"T\">Получатель:</td>\r\n";
echo " <td><select style=\"width: 200px\" class=\"F2\" size=\"1\" name=\"recip\">\r\n";
if (!empty($_POST['recip'])) $config['recip_n'] = intval($_POST['recip']);
$config['recip_n']--;
for ($i=0;$i<$t['n'];$i++) {
$t['c'][$i] = explode("|",trim($t['c'][$i]));
echo " <option "; if ($i == $config['recip_n']) echo "selected "; echo "value=\"".($i+1)."\">".$t['c'][$i][1]."</option>\r\n";
}
echo " </select></td>\r\n";
echo " </tr>\r\n";
}
else {
echo " <input type=\"hidden\" value=\"1\" name=\"recip\">\r\n";
}
?>
<tr>
<td align="right" valign="top">
<p class="T">Сообщение:</td>
<td><textarea class="F3" name="message" rows="6" cols="45"><?php if (!empty($_POST['message'])) echo htmltoform($_POST['message']); ?></textarea></td>
</tr>
</table>
</td>
</tr>
</table>



мне нужно добавить несколько строк ещё....допустим номер телефона...чтобы он отображался в тексте письма на отдельной строчке. Хэлпаните, дальше я по аналогии

  Ответить  
 
 автор: Киналь   (12.03.2012 в 14:51)   письмо автору
 
   для: FL!p3r   (12.03.2012 в 14:37)
 

Во-первых, пользуйтесь в другой раз тегами [code ]. А во-вторых, примеры у вас уже есть. Что именно вызывает затруднения?

  Ответить  
 
 автор: FL!p3r   (12.03.2012 в 14:58)   письмо автору
 
   для: Киналь   (12.03.2012 в 14:51)
 

хорошо, учту...я сделал ещё одну переменную hotel тем не менее на емэйл не приходит эта позиция

  Ответить  
 
 автор: Slo_Nik   (12.03.2012 в 15:10)   письмо автору
 
   для: FL!p3r   (12.03.2012 в 14:58)
 

как Вы создали эту переменную?
в форме присутствует соответствующий input ?

  Ответить  
 
 автор: FL!p3r   (12.03.2012 в 15:15)   письмо автору
 
   для: Slo_Nik   (12.03.2012 в 15:10)
 

$var['fields'] = array("name"=>"имя", "email"=>"e-mail", "subject"=>"заголовок", "message"=>"текст сообщения", "hotel"=>"текст сообщения");


затем в самой форме сделал textarea

  Ответить  
 
 автор: FL!p3r   (12.03.2012 в 15:16)   письмо автору
 
   для: FL!p3r   (12.03.2012 в 15:15)
 

<tr>
          <td align="right" valign="top">
            <p class="T">Отель:</td>
          <td><textarea class="F3" name="hotel" rows="6" cols="45"><?php if (!empty($_POST['hotel'])) echo htmltoform($_POST['hotel']); ?></textarea></td>
        </tr>

  Ответить  
 
 автор: Slo_Nik   (12.03.2012 в 15:23)   письмо автору
 
   для: FL!p3r   (12.03.2012 в 15:15)
 

вот в этой строке нет Вашей переменной новой

<?php 
if (mail("=?Windows-1251?B?".mail_convert(htmltoform($var['recip_n']))."?= <".$var['recip_e'].">",$var['subj'],$var['message'],$var['header']))
?>

и поэтому ни чего не приходит
если Вы хотите добавить к сообщению ещё и "hotel", то надо объединить это с message

  Ответить  
 
 автор: FL!p3r   (12.03.2012 в 15:26)   письмо автору
 
   для: Slo_Nik   (12.03.2012 в 15:23)
 

объединение переменных через запятую? сразу прошу прощения за глупый вопрос )

  Ответить  
 
 автор: Slo_Nik   (12.03.2012 в 15:26)   письмо автору
 
   для: FL!p3r   (12.03.2012 в 15:26)
 

Получается, что если в форме есть поле message и Вы хотите добавить hotel к сообщению, то делаете нужное поле с этим именем в форме, а потом, при формировании письма, объединяете два поля
что-то типа этого

<?php 
// предыдущий код
$message $message;
$message .= $hotel;
// дальнейшая обработка данных и отправка
mail($to$subject$message$headers).... // и так далее
?>


p.s. и чуть не в тему.... html оставляет желать лучшего, не используйте устаревшие теги и стили выносите в отдельный файл....

  Ответить  
 
 автор: FL!p3r   (12.03.2012 в 15:36)   письмо автору
 
   для: Slo_Nik   (12.03.2012 в 15:26)
 

жаль мозгов не хватает написать свой код...приходится пользоваться готовыми...

  Ответить  
Rambler's Top100
вверх

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