Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl, PHP: отправка формы на e-mail

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Открыть новую тему     Написать ответ в эту тему

andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BOBAT
у select-a ведь несколько значений, у каждого option свой value. Что у вас в $spisok и что в итоге нужно получить?

----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 21:04 01-04-2010 | Исправлено: andead, 21:05 01-04-2010
BOBAT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
Выбор какого-либо значения в выпадающем списке для отправки в форме
 
<select size="1" name="spisok">
<option selected>Выберите</option>
<option>1 выбор</option>
<option>2 выбор</option>
<option>3 выбор</option>
<option>4 выбор</option></select>
и выбранное значение должно отсылаться
 
текстовые поля так <INPUT type="text" size=40 name="email" value="<? print $email ?>
 
потом это всё собирается
 
<?
if (isset($service))
{
if (!(($service!='') & ($company!='') & ($name!='') & ($phone!='') & ($email!='') & ($activity!='') & ($quantity!='')))
{
?>
 
и отправляется на почту

Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 23:53 01-04-2010 | Исправлено: BOBAT, 23:57 01-04-2010
andead



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
<tr>  
<td align="right" width="200">Ваш e-mail&nbsp;&nbsp;</td>  
<td align="center" style="width: 15px"><img border="0" src="images/15x15.gif"></td>  
<td align="left" style="width: 285px">
<select size="1" name="spisok">  
<option value="0">Выберите</option>  
<option value="1">1 выбор</option>  
<option value="2">2 выбор</option>  
<option value="3">3 выбор</option>  
<option value="4">4 выбор</option>
</select>
</td>  
</tr><tr><td><img border="0" src="images/5x5.gif"></td>  
</tr>


----------
мой блог

Всего записей: 1821 | Зарегистр. 22-09-2005 | Отправлено: 00:38 02-04-2010
BOBAT



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
andead
Большое спасибо, всё работает нормально.

Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 12:24 02-04-2010
stroibat



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите плиз
есть форма все работае замечательно, отправляет.
Но после отправки открывается пустая страница, сообщения об отправке нету.
Куда копать?
 
<?php
session_start();
$admin = 'milo@site.ru';
 
if ( isset( $_POST['sendMail'] ) ) {
  $name  = substr( $_POST['name'], 0, 64 );
  $email   = substr( $_POST['email'], 0, 64 );
  $subject = substr( $_POST['subject'], 0, 64 );
  $message = substr( $_POST['message'], 0, 250 );
 
  $error = '';
  if ( empty( $name ) ) $error = $error.'<li>Не заполнено поле "Имя"</li>';
  if ( empty( $email ) ) $error = $error.'<li>Не заполнено поле "E-mail"</li>';
  if ( empty( $subject ) ) $error = $error.'<li>Не заполнено поле "Тема"</li>';
  if ( empty( $message ) ) $error = $error.'<li>Не заполнено поле "Сообщение"</li>';
  if ( !empty( $email ) and !preg_match( "#^[0-9a-z_\-\.]+@[0-9a-z\-\.]+\.[a-z]{2,6}$#i", $email ) )
    $error = $error.'<li>поле "E-mail" должно соответствовать формату somebody@somewhere.ru</li>';
  if ( !empty( $error ) ) {
    $_SESSION['sendMailForm']['error']   = '<p>При заполнении формы были допущены ошибки:</p><ul>'.$error.'</ul>';
    $_SESSION['sendMailForm']['name']    = $name;
    $_SESSION['sendMailForm']['email']   = $email;
    $_SESSION['sendMailForm']['subject'] = $subject;
    $_SESSION['sendMailForm']['message'] = $message;
    header( 'Location: '.$_SERVER['PHP_SELF'] );
    die();
  }
 
  $body = "АВТОР:\r\n".$name."\r\n\r\n";
  $body .= "E-MAIL:\r\n".$email."\r\n\r\n";
  $body .= "ТЕМА:\r\n".$subject."\r\n\r\n";
  $body .= "СООБЩЕНИЕ:\r\n".$message;
  $body = quoted_printable_encode( $body );
 
  $theme   = '=?utf-8?B?'.base64_encode('Заполнена форма на сайте').'?=';
  $headers = "From: ".$_SERVER['SERVER_NAME']." <".$email.">\r\n";
  $headers = $headers."Return-path: <".$email.">\r\n";
  $headers = $headers."Content-type: text/plain; charset=\"utf-8\"\r\n";
  $headers = $headers."Content-Transfer-Encoding: quoted-printable\r\n\r\n";
 
  if ( mail($admin, $theme, $body, $headers) )
    $_SESSION['success'] = true;
  else
    $_SESSION['success'] = false;
  header( 'Location: '.$_SERVER['PHP_SELF'] );
  die();
}
 
function quoted_printable_encode ( $string ) {
   // rule #2, #3 (leaves space and tab characters in tact)
   $string = preg_replace_callback (
   '/[^\x21-\x3C\x3E-\x7E\x09\x20]/',
   'quoted_printable_encode_character',
   $string
   );
   $newline = "=\r\n"; // '=' + CRLF (rule #4)
   // make sure the splitting of lines does not interfere with escaped characters
   // (chunk_split fails here)
   $string = preg_replace ( '/(.{73}[^=]{0,3})/', '$1'.$newline, $string);
   return $string;
}
 
function quoted_printable_encode_character ( $matches ) {
   $character = $matches[0];
   return sprintf ( '=%02x', ord ( $character ) );
}
?>
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Отправить письмо</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
 
<?php
if ( isset( $_SESSION['success'] ) ) {
  if ( $_SESSION['success'] )
    echo '<p>Письмо успешно отправлено</p>';
  else
    echo '<p>Ошибка при отправке письма</p>';
  unset( $_SESSION['success'] );
}
if ( isset( $_SESSION['sendMailForm'] ) ) {
  echo $_SESSION['sendMailForm']['error'];
  $name    = htmlspecialchars ( $_SESSION['sendMailForm']['name'] );
  $email   = htmlspecialchars ( $_SESSION['sendMailForm']['email'] );
  $subject = htmlspecialchars ( $_SESSION['sendMailForm']['subject'] );
  $message = htmlspecialchars ( $_SESSION['sendMailForm']['message'] );
  unset( $_SESSION['sendMailForm'] );
} else {
  $name    = '';
  $email   = '';
  $subject = '';
  $message = '';
}
?>
 
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<table>
<tr><td>Имя:</td><td><input type="text" name="name" maxlength="64" value="<?php echo $name ?>" /></td></tr>
<tr><td>E-mail:</td><td><input type="text" name="email" maxlength="64" value="<?php echo $email ?>" /></td></tr>
<tr><td>Тема:</td><td><input type="text" name="subject" maxlength="64" value="<?php echo $subject ?>" /></td></tr>
<tr><td>Сообщение:</td><td><textarea name="message" rows="5" cols="30"><?php echo $message ?></textarea></td></tr>
<tr><td>&nbsp;</td><td><input type="submit" name="sendMail" value="Отправить" /></td></tr>
</table>
</form>
 
</body>
</html>
 

Всего записей: 72 | Зарегистр. 17-01-2007 | Отправлено: 00:51 04-06-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
stroibat
включите отображение ошибок и посмотрите, что будет написано

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:30 05-06-2010
stroibat



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
включил отображение ошибок
 
при открытии страницы
 
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/site.ru/public_html/zakaz2.php:2) in /home/site.ru/public_html/zakaz2.php  on line 3
 
т.е. тут -  
2 <?php
3 session_start();
 
и при отправлении это
 
Warning: Cannot modify header information - headers already sent by (output started at /home/site.ru/public_html/zakaz2.php:2) in /home/site.ru/public_html/zakaz2.php on line 45
 
45  header( 'Location: '.$_SERVER['PHP_SELF'] );
 
p.s.
Проблема может возникать после изменения кодировки скрипта с windows-1251 на utf-8
Но в моем случае - удалил первую пустую строку, все заработало.
 
Суньте меня носом, как прикрутить рабочую каптчу, если кому не жалко.
 

Всего записей: 72 | Зарегистр. 17-01-2007 | Отправлено: 16:52 07-06-2010 | Исправлено: stroibat, 20:40 07-06-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
stroibat

Цитата:
Суньте меня носом, как прикрутить рабочую каптчу, если кому не жалко.

Защита форм от роботов (скрипт)

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:51 07-06-2010
Alkin

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
У меня маленькая проблемка. Есть рабочий скрипт по отсылки имейла с формы на сайте. Но вот загвоздка в том, что после отправления открывается белас страница которая с надписью "Спасибо, отправлено". А мне нужно что-бы выскакивало всплывающее окно с таким сообщением и форму обнулялась.  
 
Вот скрипт:
 
<?php  
if ($_POST["email"]<>'') {  
 
$ToEmail = 'my@mail.com';  
$EmailSubject = 'Site contact form ';  
$mailheader = "From: ".$_POST["email"]."\r\n";  
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";  
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";  
$MESSAGE_BODY = "Name: ".$_POST["name"]."<br>";  
$MESSAGE_BODY .= "Email: ".$_POST["email"]."<br>";  
$MESSAGE_BODY .= "Company: ".$_POST["company-name"]."<br>";  
$MESSAGE_BODY .= "Comment: ".nl2br($_POST["comment"])."<br>";  
mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");  
echo "Email Sent successfully";  
 
} else {
        include "con-test.html";
        exit();
}  
?>

Всего записей: 33 | Зарегистр. 09-09-2005 | Отправлено: 19:08 17-08-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Alkin

Цитата:
А мне нужно что-бы выскакивало всплывающее окно с таким сообщением и форму обнулялась.

для формы делаете target=_blank, в сплывающем сообщении делаете js код, который обнуляет форму
<script>
opener.document.getElementById('id_формы').reset()
</script>

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:10 17-08-2010
Valentin63

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
solicitorlaw, использую PHP функцию INCLUDE ("ссылка на файл с формой");

Всего записей: 32 | Зарегистр. 16-12-2005 | Отправлено: 12:47 18-08-2010
treeanon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Swappp
"Для начала на сервере должен стоять php" - пожалуйста, подскажите какие файлы и приложения необходимы для наличия php на хостинге?
На моем хостинге есть скрипт  и файл send.php от Cheery, может ещё что-то необходимо. Хостинг поддерживает php.

Всего записей: 500 | Зарегистр. 22-02-2010 | Отправлено: 23:01 13-09-2010 | Исправлено: treeanon, 23:46 13-09-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
treeanon

Цитата:
Хостинг поддерживает php.

если поддерживает, то в чем вопрос?

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 04:14 14-09-2010
treeanon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Cheery
 
Скрипта  и файла send.php вполне достаточно, больше ничего не нужно?
Значит проблема в хостинге?

Всего записей: 500 | Зарегистр. 22-02-2010 | Отправлено: 14:03 14-09-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
treeanon

Цитата:
Значит проблема в хостинге?

какая проблема? я не вижу ее описания от вашего ника в этой теме..
если же завели второй аккаунт, то нарушаете правила форума.


----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:24 14-09-2010
treeanon



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
На моем хостинге есть скрипт  и файл send.php от Cheery, может ещё что-то необходимо?

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

Всего записей: 500 | Зарегистр. 22-02-2010 | Отправлено: 17:14 15-09-2010 | Исправлено: treeanon, 17:15 15-09-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
treeanon

Цитата:
Поэтому и спрашиваю - необходимо ли иметь  другие файлы  

нет, но
1) хостер должен давать возможность отправки почты
2) смотря как написан скрипт - www.phpfaq.ru/globals

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 20:19 15-09-2010
Immersion



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Помогие мне!!!Юзаю прогу DevelStudio ,создал фейк с перенаправлениям на снифер,а вот как сделать чтоб данные мне присилались на мыло???(яндекс или мейл)!!!Пробувал скрипти на 1 странице но мне видает ошибку на на етой строке: mail($toemail, $subject_line, $message, $headers);
Вот скрин: http://s011.radikal.ru/i318/1012/73/847de8dfc09a.jpg
 
 
Сорри за ошибки в тексте

Всего записей: 7 | Зарегистр. 12-12-2010 | Отправлено: 17:34 12-12-2010
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Immersion

Цитата:
Пробувал скрипти на 1 странице но мне видает ошибку на на етой строке:  

и правильно выдает - у вас нет локального SMTP сервера, чтобы скрипт мог к нему подключиться для отправки сообщения.

Цитата:
создал фейк с перенаправлениям на снифер

в данном разделе не любят подобных "умельцев".

----------
Away/DND

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 18:28 12-12-2010
Immersion



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
в данном разделе не любят подобных "умельцев".
Сорри.
 
и правильно выдает - у вас нет локального SMTP сервера, чтобы скрипт мог к нему подключиться для отправки сообщения
 
Что єто такое SMTP ??
 
Добавлено:
Не знаю, как установить и настроить SMTP-сервер...
Мне нужен SMTP-сервер на 3 и больше пользователей  
 

Всего записей: 7 | Зарегистр. 12-12-2010 | Отправлено: 19:06 12-12-2010
Открыть новую тему     Написать ответ в эту тему

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28

Компьютерный форум Ru.Board » Интернет » Web-программирование » Perl, PHP: отправка формы на e-mail


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru