Ru-Board.club
← Вернуться в раздел «Web-программирование»

» Perl, PHP: отправка формы на e-mail

Автор: Cheery
Дата сообщения: 18.08.2009 18:34
DJ PRIZRAK
значит что меняди в настройках сервера, раз не работает php. Разберитесь сначала с этим, но не в данной теме
Автор: DJ PRIZRAK
Дата сообщения: 18.08.2009 18:41
CheeryА сам скрипт и форма получаются правельные..???
И кстати в самом денвере... есть же функция отправки почты.. так вот там все исполняется.. и текст ложится куда надо.. в папочку, и все работает.....Т.е. что то другое все таки...
Автор: Cheery
Дата сообщения: 18.08.2009 19:16
DJ PRIZRAK

Цитата:
А сам скрипт

я же его и писал раньше.

насчет формы - я не знаю, что ваш js там делает.

Цитата:
Т.е. что то другое все таки...

нет ничего другого.. либо у вас в той папке запрещено выполнение php, либо что то еще с настройками сервера.
Автор: 69from
Дата сообщения: 20.08.2009 15:05
У меня такая форма:

Код:
<?
session_start();
?>

<?

if (isset($_POST['submit']) && count($_POST)>0)
{
    if (!empty($_POST['phone']) && !empty($_POST['contact']) && !empty($_POST['email']) && isset($_SESSION['captcha_keystring']) && $_SESSION['captcha_keystring'] == $_POST['keystring'])
{
         $adminemail="мое@мыло.ru";
$message = "Телефон: ".$_POST['phone']."\r\n";
if (!empty($_POST['fax']))
$message .= "Факс: ".$_POST['fax']."\r\n";
$message .= "e-mail: ".$_POST['email']."\r\n";
$message .= "Контактное лицо: ".$_POST['contact']."\r\n\r\n";

if (!empty($_POST['color']))
$message .= "Цвет: ".$_POST['color']."\r\n";
if (!empty($_POST['size']))
$message .= "Размер: ".$_POST['size']."\r\n";
if (!empty($_POST['height']))
$message .= "Высота профиля: ".$_POST['height']."\r\n";
if (!empty($_POST['ploshad']))
$message .= "Площадь помещения: ".$_POST['ploshad']."\r\n";
if (!empty($_POST['perim']))
$message .= "Периметр помещения: ".$_POST['perim']."\r\n";
if (!empty($_POST['primech']))
$message .= "Примечание: ".$_POST['primech']."\r\n";

@mail($adminemail, "Заказ с сайта", $message, "From: ".$email);
echo "<h2>Спасибо! Ваша заявка успешно отправлена. Наши менеджеры свяжутся с Вами как можно скорее</h2>";
unset($_POST);
        unset($_SESSION['captcha_keystring']);
}
else
echo "<h2>Заполните обязательные поля и буквы с картинки!</h2>";
}
?>
Автор: Cheery
Дата сообщения: 20.08.2009 18:28
69from
прочитайте
[PHP] косяк с отправкой формы (вроде как)
Автор: Toxavskyu
Дата сообщения: 31.08.2009 09:45
Ребята нужна форма: кто сделает ?
вариант такой: __http://skorohod25.ru/?tar=without_driver&sub=order

заплачу 10$ в рублях 300 руб.
Автор: Cheery
Дата сообщения: 31.08.2009 19:48
Toxavskyu
Работа для веб/мастера/программиста (от РАБОТОДАТЕЛЕЙ)
Автор: BOBAT
Дата сообщения: 01.04.2010 17:47
Есть форма отправки

<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"><INPUT type="text" size=40 name="email" value="<? print $email ?>"></td>
</tr><tr><td><img border="0" src="images/5x5.gif"></td>
</tr>

ввод в тектовое поле, нужно вставить вместо текстового поля выпадающий список.
Как это сделать?? чтоб value="<? print $spisok ?>" был?
Автор: andead
Дата сообщения: 01.04.2010 18:43
BOBAT
http://www.htmlbook.ru/html/select.html
Автор: BOBAT
Дата сообщения: 01.04.2010 20:00
andead
Это понятно, как мне переменную вставить?? $spisok ??
Автор: andead
Дата сообщения: 01.04.2010 20:04
BOBAT
у select-a ведь несколько значений, у каждого option свой value. Что у вас в $spisok и что в итоге нужно получить?
Автор: BOBAT
Дата сообщения: 01.04.2010 22:53
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!='')))
{
?>

и отправляется на почту
Автор: andead
Дата сообщения: 01.04.2010 23:38

Код: <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>
Автор: BOBAT
Дата сообщения: 02.04.2010 11:24
andead
Большое спасибо, всё работает нормально.
Автор: stroibat
Дата сообщения: 03.06.2010 23:51
Подскажите плиз
есть форма все работае замечательно, отправляет.
Но после отправки открывается пустая страница, сообщения об отправке нету.
Куда копать?

<?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>

Автор: Cheery
Дата сообщения: 04.06.2010 23:30
stroibat
включите отображение ошибок и посмотрите, что будет написано
Автор: stroibat
Дата сообщения: 07.06.2010 15:52
включил отображение ошибок

при открытии страницы

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
Но в моем случае - удалил первую пустую строку, все заработало.

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

Автор: Cheery
Дата сообщения: 07.06.2010 19:51
stroibat

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

Защита форм от роботов (скрипт)
Автор: Alkin
Дата сообщения: 17.08.2010 18:08
У меня маленькая проблемка. Есть рабочий скрипт по отсылки имейла с формы на сайте. Но вот загвоздка в том, что после отправления открывается белас страница которая с надписью "Спасибо, отправлено". А мне нужно что-бы выскакивало всплывающее окно с таким сообщением и форму обнулялась.

Вот скрипт:

<?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();
}
?>
Автор: Cheery
Дата сообщения: 17.08.2010 19:10
Alkin

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

для формы делаете target=_blank, в сплывающем сообщении делаете js код, который обнуляет форму
<script>
opener.document.getElementById('id_формы').reset()
</script>
Автор: Valentin63
Дата сообщения: 18.08.2010 11:47
solicitorlaw, использую PHP функцию INCLUDE ("ссылка на файл с формой");
Автор: treeanon
Дата сообщения: 13.09.2010 22:01
Swappp
"Для начала на сервере должен стоять php" - пожалуйста, подскажите какие файлы и приложения необходимы для наличия php на хостинге?
На моем хостинге есть скрипт и файл send.php от Cheery, может ещё что-то необходимо. Хостинг поддерживает php.
Автор: Cheery
Дата сообщения: 14.09.2010 03:14
treeanon

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

если поддерживает, то в чем вопрос?
Автор: treeanon
Дата сообщения: 14.09.2010 13:03
Cheery

Скрипта и файла send.php вполне достаточно, больше ничего не нужно?
Значит проблема в хостинге?
Автор: Cheery
Дата сообщения: 14.09.2010 22:24
treeanon

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

какая проблема? я не вижу ее описания от вашего ника в этой теме..
если же завели второй аккаунт, то нарушаете правила форума.
Автор: treeanon
Дата сообщения: 15.09.2010 16:14

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

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

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

нет, но
1) хостер должен давать возможность отправки почты
2) смотря как написан скрипт - www.phpfaq.ru/globals
Автор: Immersion
Дата сообщения: 12.12.2010 16:34
Помогие мне!!!Юзаю прогу DevelStudio ,создал фейк с перенаправлениям на снифер,а вот как сделать чтоб данные мне присилались на мыло???(яндекс или мейл)!!!Пробувал скрипти на 1 странице но мне видает ошибку на на етой строке: mail($toemail, $subject_line, $message, $headers);
Вот скрин: http://s011.radikal.ru/i318/1012/73/847de8dfc09a.jpg


Сорри за ошибки в тексте
Автор: Cheery
Дата сообщения: 12.12.2010 17:28
Immersion

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

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

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

в данном разделе не любят подобных "умельцев".
Автор: Immersion
Дата сообщения: 12.12.2010 18:06
в данном разделе не любят подобных "умельцев".
Сорри.

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

Что єто такое SMTP ??

Добавлено:
Не знаю, как установить и настроить SMTP-сервер...
Мне нужен SMTP-сервер на 3 и больше пользователей

Страницы: 1234567891011121314151617

Предыдущая тема: Как сделать так чтобы в MySQL грузились тяжёлые картинки


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.