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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Makintoshik

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет
так как я в php вообще дубень (девушка ), хотелось бы попросить вашей помощи
у меня платный хостинг, php поддерживает
 
форма для отправки на e-mail, она,насколько я понимаю, чисто в html написана
но не работает, outlook открывается, вообщем,я так понимаю, она неправильная
подскажите,пожалуйста, что с ней можно сделать, или как её обыграть в php, чтобы она работала, буду очень благодарна
 
вот,собственно,сама форма:
 
 
<FORM ACTION="mailto:yourdomain@example.ru" METHOD=post>
<TABLE BORDER=0><font size=2>
<tr><td><font size=2>Ваше имя</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Ваш E-mail</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Телефон</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Тип работы</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Предмет</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Тема работы</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Срок выполнения</font></td><td><input type=text name="sub" cols=40>
<tr><td><font size=2>Прикрепить файлы</font></td><td>
<INPUT TYPE="file" NAME="file" cols=40><br>
<INPUT TYPE="file" NAME="file" cols=40>
 
<tr><td>
</td></tr>
<TR>
<TD colspan=2><font size=2>
Особые требования: <BR><textarea name="mes" cols=40 rows=5></textarea></font></TD></TR>
<TR>
<TD colspan=2 align=center><input type=submit value="Отправить"> <input type=reset value="Очистить"></TD></TR>
 
 </table></form>
 
 
P.S. Е-майл поменяла, так что не работает она точно не от этого

Всего записей: 1 | Зарегистр. 14-07-2011 | Отправлено: 12:36 14-07-2011
Maxim113

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Друзья подскажите как сделать перенос в письме?
 
Код такой:
 
<?php  
// если была нажата кнопка "Отправить"  
if($_POST['submit']) {  
        // $_POST['title'] содержит данные из поля "Тема", trim() - убираем все лишние пробелы и переносы строк, htmlspecialchars() - преобразует специальные символы в HTML сущности, будем считать для того, чтобы простейшие попытки взломать наш сайт обломались, ну и  substr($_POST['title'], 0, 1000) - урезаем текст до 1000 символов. Для переменной $_POST['mess'] все аналогично  
        $title = substr(htmlspecialchars(trim($_POST['title'])), 0, 1000);  
        $fio = ($_POST['fio']);  
        $tel = ($_POST['tel']);
        $email = ($_POST['email']);
 
$mess = "Компания: ". $title."\n".
 "ФИО: ". $fio."\n".
 "Телефон: ". $tel."\n".
 "E-mail: ". $email;
 
        // $to - кому отправляем  
        $to = 'mail@mail.ru';  
        // $from - от кого  
        $from='mail@mail.ru';  
        // функция, которая отправляет наше письмо.  
        mail($to, $title, $mess, 'From:'.$from);  
        echo 'Спасибо! Ваше письмо отправлено.';  
}  
?>

Всего записей: 5 | Зарегистр. 12-06-2010 | Отправлено: 17:59 07-03-2012
Alexlio

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

Цитата:
trim() - убираем все лишние пробелы и переносы строк

 
в слове лишние поразумивается условие если есть два рядом стоящих пробела удалить 1, если есть 2 переноса вподрят удалить 1 зачем тогда перенос делать если же текст из такова приобретет
начало: Привет     я
 
 
Василий Пупки
 
конец: Привет я
Василий Пупкин
 
может я не так понял вопрос????

Всего записей: 36 | Зарегистр. 25-11-2010 | Отправлено: 19:38 07-03-2012
Maxim113

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
trim условие применяется только к полю title, но даже если его оттуда убрать, то все поля (компания, фио, телефон, емайл) приходят одной строкой на почту...а надо чтоб после каждой из строк вставлялся перенос строки.

Всего записей: 5 | Зарегистр. 12-06-2010 | Отправлено: 14:35 08-03-2012
Maxim113

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем спасибо за попытки решить проблему(всем это одному человеку)
 
решил сам
mail($to, $zag, $mess, "From: $from
Reply-To: $from
Content-Type: text/html; charset=utf-8
Content-Transfer-Encoding: 8bit");  
 
надо было всего лишь дописать контент тайп.

Всего записей: 5 | Зарегистр. 12-06-2010 | Отправлено: 23:34 08-03-2012
Cheery



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

Цитата:
а надо чтоб после каждой из строк вставлялся перенос строки

content-type на это не совсем влияет. надо было попробовать использовать \r\n вместо \n
но нормальный почтовый клиент должен работать и с \n

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 00:05 09-03-2012
Maxim113

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Почта отсылалась на яндекс почту, смотрел из браузера. Без контент тайпа приходили просто буквы, пробовал все сочетания и n и r и с косыми в разные стороны, всё равно ничего не помогало, спасло только четкое указание HTML и вставка <br> в нужных местах.

Всего записей: 5 | Зарегистр. 12-06-2010 | Отправлено: 01:47 09-03-2012
Cheery



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

Цитата:
пробовал все сочетания и n и r и с косыми в разные стороны

надо было посмотреть в заголовках письма какой тип контента выставляется по умолчанию

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 02:00 09-03-2012
kot488



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
День добрый, имеется настроеный web сервер на Centos, на нем крутиться пару сайтов на жумла и битриксе, и установлен kerio connect, подскажите как прописать в php.ini что бы сайт стали почту через kerio

Всего записей: 1614 | Зарегистр. 31-10-2006 | Отправлено: 15:13 22-11-2012
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
kot488
Читайте
http://php.net/manual/en/mail.configuration.php

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 01:15 23-11-2012
Kjyljy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нужна помощь СРОЧНО!!!
сделал форму обратной связи на сайт очень простоую.
письма приходят на указанный мейл, только есть одно большущее даже огромное НО!
вместо русских букв - иероглифы какие-то. пробовал кодировки менять не помогло.
что делать почему так происходит?
на хостинге php подключено.
p.s. я нуб в этом деле, прошу по проще...  
Вот html код:
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" >  
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Форма заказа</title>
<LINK rel="stylesheet" media="screen" type="text/css" title="Style" href="css/style.css">
 
</head>
 
<body>
<p>Здесь вы можете оставить свою заявку на приобретение товара</p>
<form action="send.php" method="post" name="f1">
<p>Введите имя:<br>
<input type="text" name="name" id="name" class="in1"></p>
<p>Введите email:<br>
<input type="text" name="email" id="email" class="in1"></p>
<p>Введите сообщение:<br>
<textarea name="message" id="message" rows="5" cols="30" class="ta1"></textarea>
<br>
<br>
<input type="submit" value="Отправить сообщение" class="bt1"></p>
 
 
</form>
 
</body>
</html>
 
И php код:
 
<?php  
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$address = 'ddd@mail.ru';
$sub = "Проба формы заказа";
$mes = "Автор назвался: $name \nУказал свой адрес: $email \nСодержание письма: $message";
$verify = mail ($address,$sub,$mes,"Content-type: text/plain; charset = windows-1251\r\nFrom:$email");
if ($verify == 'true')
{
echo "<p>Сообщение отправлено";
}
else  
{
echo "<p>Сообщение не отправлено";
}
?>

Всего записей: 21 | Зарегистр. 23-02-2010 | Отправлено: 21:04 23-04-2013
Cheery



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

Цитата:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  

то есть страница у вас в уникоде? тогда почему вы утверждаете, что в почте отправляется
Цитата:
charset = windows-1251

?
 
сделайте и форму в 1251.. либо перекодируйте результат из нее в 1251, либо письмо в уникоде отсылайте

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:07 23-04-2013 | Исправлено: Cheery, 21:32 23-04-2013
Kjyljy

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
так теперь шило на мыло получилось...
изменил  на charset=utf-8 php код
и теперь приходит в таком формате  
 
---(тут пустые квадраты всякие)----: вован  
---(тут пустые квадраты всякие)-----: pok@mail.ru  
 ---(тут пустые квадраты всякие)----: работать будем?
 
до изменения было вот так:
 
Автор назвался: ---(тут иероглифы всякие)----
Указал свой адрес: ---(тут иероглифы всякие)----
Содержание письма:---(тут иероглифы всякие)----

Всего записей: 21 | Зарегистр. 23-02-2010 | Отправлено: 21:29 23-04-2013 | Исправлено: Kjyljy, 21:30 23-04-2013
Cheery



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

Цитата:
изменил  на charset=utf-8 php код  
и теперь приходит в таком формате  

Ну так код php тоже должен быть тогда в уникоде - чтобы текстовая строка, которая формируется этим кодом, тоже была в уникоде.


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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:32 23-04-2013 | Исправлено: Cheery, 21:33 23-04-2013
Kjyljy

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

Цитата:
Ну так код php тоже должен быть тогда в уникоде

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

Всего записей: 21 | Зарегистр. 23-02-2010 | Отправлено: 21:41 23-04-2013
Cheery



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

Цитата:
как мен сделать, чтобы перебрасывало именно на эту страницу?  

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

Цитата:
т.е. как файлы называть загружаемые на сервер чтобы все было ОК

как угодно, но ASCII символами (не кириллицей)

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 21:42 23-04-2013
EandyCat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ подскажите, перечитал тему, но так ничего и не получилось.
 
У меня проблема с кодировкой.
 
   
 

Код:
 
<?php  
    //If the form is submitted  
    if(isset($_POST['btsend'])) {  
        //If there is no error, send the email  
        if(!isset($hasError)) {  
            $subject = get_option('luna_subject');  
            $fname = $_POST['fname'];  
            $email = $_POST['email'];  
            $message = $_POST['message'];  
 
            $emailTo = get_option('luna_contactemail'); // please change this to your desire email address thru theme options  
            $subject = $subject . ' От пользователя '.$fname;  
            $body = "Имя: $fname \n\nEmail: $email \n\nТекст Сообщения: $message";  
            $headers = 'from: '.$fname.' <'.$email.'>' . "\r\n" . 'Reply-To: ' . $email;  
 
             
            mail($emailTo, $subject, $body, $headers);              
 
            $emailSent = true;  
        }  
    }  
    get_header();  
?>  
 

Всего записей: 7 | Зарегистр. 01-09-2010 | Отправлено: 08:16 26-05-2013 | Исправлено: EandyCat, 08:18 26-05-2013
Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
EandyCat
плохо читали, значит... в какой кодировке страница с формой?
похоже, что в уникоде
ну так и в письме указывайте уникод, примеры выше были
то есть добавляете к заголовкам

Цитата:
Content-Type: text/plain; charset=UTF-8

да и сам скрипт должен быть в уникоде

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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 08:57 26-05-2013
EandyCat

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Страница в Юникоде правильно догадались
 
Добавил строку:
$headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";  
 
и в начали на всякий пожарный добавил  
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
 
И сам документ сохранен с кодировкой: utf-8
 
Результата тот же
 
 
Когда декодирую текст, который мне пришел на почту, то текст кодируется в нужный и подсказка:
 
Как нам пришлось помучиться

Код:
KOI8-R &#8594; UTF-8

Всего записей: 7 | Зарегистр. 01-09-2010 | Отправлено: 09:25 26-05-2013 | Исправлено: EandyCat, 09:37 26-05-2013
Cheery



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

Цитата:
Страница в Юникоде

это браузер так считает или вы? проверили?
потому что мета таг в этом случае роли не играет
 

Цитата:
И сам документ сохранен с кодировкой: utf-8  

какой документ? скрипт?  


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

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 09:47 26-05-2013
Открыть новую тему     Написать ответ в эту тему

Страницы: 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