PHP . SU
Программирование на PHP, MySQL и другие веб-технологии
Без описания
Поиск в теме | Версия для печати
Garda1
Отправлено: 19 Апреля, 2011 - 12:07:17
Новичок
Покинул форум
Сообщений всего: 54
Дата рег-ции: Нояб. 2010
Помог: 0 раз(а)
показал бы исходники хоть чтоли, а так кнешна в своё время тоже промаялся с аттачем, но вот етот кусок кода работает, исправить только на свои данные осталось
Спойлер (Отобразить ) PHP:
скопировать код в буфер обмена
<?PHP
{
header ( "HTTP/1.1 404 Not Found" ) ; }
{
$post = clean_data( $_POST ) ;
if ( empty ( $post [ 'lastname' ] ) ) { $error .= '<li>Не заполнено поле <b>"Фамилия"</b></li>' ;
}
if ( empty ( $post [ 'firstname' ] ) ) { $error .= '<li>Не заполнено поле <b>"Имя"</b></li>' ;
}
if ( empty ( $post [ 'telephone' ] ) ) { $error .= '<li>Не заполнено поле <b>"телефон"</b></li>' ;
}
if ( empty ( $post [ 'email' ] ) ) { $error .= '<li>Не заполнено поле <b>"E-mail"</b></li>' ;
}
if ( $post [ 'usluga' ] == '0' ) {
$error .= '<li>Не заполнено поле <b>"Выберите услугу"</b></li>' ;
}
if ( empty ( $post [ 'additionalinfo' ] ) ) { $error .= '<li>Не заполнено поле <b>"Ваше сообщение"</b></li>' ;
}
if ( empty ( $post [ 'company' ] ) ) { $error .= '<li>Не заполнено поле <b>"Название организации"</b></li>' ;
}
if ( ! isset ( $_SESSION [ 'captcha_keystring' ] ) || $_SESSION [ 'captcha_keystring' ] != $post [ 'captcha' ] ) { $error .= '<li>Неверно введена контрольная строка антиспама</li>' ;
}
{
$HTML .= '<ol class="messaga bad_messaga">' ;
$HTML .= $error ; // Вывод системных сообщений
$HTML .= '</ol>' ;
$HTML .= '<br><br>' ;
}
else //если нет ашибок, то собираем письмо
{
$bound = 'spravka-1234' ;
$emailTo = 'mymail@mail.ru' ;
$headers = 'From: YourSite.ru <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= '<b>ФИО:</b> ' . $post [ 'lastname' ] . ' ' . $post [ 'firstname' ] . ' ' . $post [ 'secondname' ] . '<br>' ;
$text .= '<b>Телефон:</b> ' . $post [ 'telephone' ] . '<br>' ;
$text .= '<b>E-mail:</b> ' . $post [ 'email' ] . '<br>' ;
if ( ! empty ( $post [ 'icq' ] ) ) $text .= '<b>ICQ:</b> ' . $post [ 'icq' ] . '<br>' ; $text .= '<b>Услуга:</b> ' . $post [ 'usluga' ] . '<br>' ;
$text .= '<b>Сообщение:</b> ' . $post [ 'additionalinfo' ] . '<br>' ;
$text .= '<b>Организация:</b> ' . $post [ 'company' ] . '<br>' ;
$file_name = $_FILES [ 'rekvizity' ] [ 'tmp_name' ] ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $_FILES [ 'rekvizity' ] [ 'name' ] ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ; $cool = true ;
$HTML .= '<ol class="messaga ok_messaga">' ;
$HTML .= '<li>Заявка отправлена, наш агент свяжется с Вами в ближайшее время.</li>' ; // Вывод системных сообщений
$HTML .= '</ol>' ;
}
}
$HTML .= '
<div class="uss_form_tml">
<form enctype="multipart/form-data" method="POST" action="' . PUZ_PAGE. '" name="orderuslugaddform" id="orderuslugaddform">
<div class="uss_form_item uss_form_text">
<label>Фамилия (*)</label>
<input type="text" class="text" name="lastname" value="' . $_REQUEST [ 'lastname' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Имя (*)</label>
<input type="text" class="text" name="firstname" value="' . $_REQUEST [ 'firstname' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Отчество </label>
<input type="text" class="text" name="secondname" value="' . $_REQUEST [ 'secondname' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Телефон (*)</label>
<input type="text" class="text" name="telephone" value="' . $_REQUEST [ 'telephone' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Ваш E-mail (*)</label>
<input type="text" class="text" id="emailid" name="email" value="' . $_REQUEST [ 'email' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>ICQ</label>
<input type="text" class="text" name="icq" value="' . $_REQUEST [ 'icq' ] . '">
</div>
<div class="uss_form_item uss_form_select">
<label>Выберите услугу (*)</label>
<select name="usluga" class="select">
<option value="0">выбор...</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Поставка оборудования и материалов' ? 'selected' : false ) . ' value="Поставка оборудования и материалов">Поставка оборудования и материалов</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Проектирование' ? 'selected' : false ) . ' value="Проектирование">Проектирование</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Монтаж, установка' ? 'selected' : false ) . ' value="Монтаж, установка">Монтаж, установка</option>
<option ' . ( $_REQUEST [ 'usluga' ] == 'Обслуживание систем безопасности' ? 'selected' : false ) . ' value="Обслуживание систем безопасности">Обслуживание систем безопасности</option>
</select>
</div>
<div class="uss_form_item uss_form_textarea">
<label>Ваш вопрос (*)</label>
<textarea id="additionalinfoid" name="additionalinfo">' . $_REQUEST [ 'additionalinfo' ] . '</textarea>
</div>
<div class="uss_form_item uss_form_text">
<label>Название организации (*)</label>
<input type="text" class="text" name="company" value="' . $_REQUEST [ 'company' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Файл с реквизитами организации</label>
<input type="file" name="rekvizity" value="">
</div>
<div class="uss_form_item uss_form_captcha">
<label>Введите символы, которые видите на картинке</label>
<input type="text" id="captchaid" name="captcha" value="">
</div>
<div class="uss_form_item uss_form_notice">Внимание! Поля, помеченные * - обязательны для заполнения</div>
<div class="uss_form_item uss_form_submit">
<input type="submit" name="sendorderuslugform" value="Отправить">
</div>
</form>
</div>
' ; }
echo $HTML ;
(Отредактировано автором: 19 Апреля, 2011 - 12:09:26)
Garda1
Отправлено: 19 Апреля, 2011 - 17:50:31
Новичок
Покинул форум
Сообщений всего: 54
Дата рег-ции: Нояб. 2010
Помог: 0 раз(а)
кодировку я пользовал исключительно utf-8.
Скрипт в студию... а то так не отгадать.
(Добавление)
Подправил вышеприведённый кодец, лично проверил, засылает только в путь.
mail.attach.php
PHP:
скопировать код в буфер обмена
<?PHP
{
require_once 'clean_data.php' ;
$post = clean_data( $_POST ) ;
if ( empty ( $post [ 'email' ] ) ) { $error .= '<li>Не заполнено поле <b>"E-mail"</b></li>' ;
}
{
$HTML .= '<ol class="messaga bad_messaga">' ;
$HTML .= $error ; // Вывод системных сообщений
$HTML .= '</ol>' ;
$HTML .= '<br><br>' ;
//echo $HTML;
}
else
{
$bound = 'spravka-1234' ;
$emailTo = $post [ 'email' ] ;
$headers = 'From: MySite <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= '<b>Сообщение:</b> Вот и должон тут быть аттачЪ<br>' ;
$file_name = $_FILES [ 'rekvizity' ] [ 'tmp_name' ] ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $_FILES [ 'rekvizity' ] [ 'name' ] ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ; $cool = true ;
$HTML .= '<ol class="messaga ok_messaga">' ;
$HTML .= '<li>Заявка отправлена, наш агент свяжется с Вами в ближайшее время.</li>' ; // Вывод системных сообщений
$HTML .= '</ol>' ;
}
}
$HTML .= '
<div class="uss_form_tml">
<form enctype="multipart/form-data" method="POST" action="">
<div class="uss_form_item uss_form_text">
<label>Ваш E-mail (*)</label>
<input type="text" class="text" id="emailid" name="email" value="' . $_REQUEST [ 'email' ] . '">
</div>
<div class="uss_form_item uss_form_text">
<label>Файл</label>
<input type="file" name="rekvizity" value="">
</div>
<div class="uss_form_item uss_form_submit">
<input type="submit" name="sendorderuslugform" value="Отправить">
</div>
</form>
</div>
' ; }
echo $HTML ;
clean_data.php
PHP:
скопировать код в буфер обмена
<?PHP
/*
* Функция очистки данных
*@param array $data - входной массив данных
*@param array $aux - выходной очищенный массив
*/
function clean_data( $data )
{
foreach ( $data as $key => $value )
{
$aux [ $key ] = pre_data( $value ) ;
}
return $aux ;
}
function pre_data( $str ) // ф-ция для очистки введенного контента
{
if ( get_magic_quotes_gpc ( ) == 1 ) // если на сервере включен magic quotes, срабатывает "ручная" очистка {
$str = str_replace(" \'", "' ", $str ) ;
$str = str_replace(" < ", " < ", $str ) ;
$str = str_replace(" > ", " > ", $str ) ;
}
else // если на сервере выключен magic quotes, срабатывает " ручная" очистка
{
$str = htmlspecialchars($str ,ENT_QUOTES," UTF- 8 ",false) ;
}
return $str ;
}
function post_data($str ) // ф-ция для очистки вЫведенного контента
{
$str = str_replace(" "" , '"' , $str ) ;
return $str ;
}
(Отредактировано автором: 19 Апреля, 2011 - 18:12:15)
NeoN121
Отправлено: 19 Апреля, 2011 - 18:18:13
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
CODE (
htmlphp ):
скопировать код в буфер обмена
$bound = 'spravka-1234';
$emailTo = 'neon12121@gmail.com';
$subject = "=?utf-8?b?".base64_encode('Заказ услуги')."?=";
$headers = 'From: us < '.$emailTo.' > '."\r\n";
$headers .= "Mime-Version: 1.0\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$bound\"\r\n";
$text .= "--$bound-\r\n";
$text .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
$text .= "Content-Transfer-Encoding: quoted-printable\r\n";
$text .= "Some text\r\n";
$file_name = 'data.csv';
$file = fopen($file_name,"rb");
if(!$file){echo 'файл не прочитан!';exit;}
$fread = fread($file,filesize($file_name));
$text .= "\r\n--$bound\r\n";
$text .= "Content-type: application/octet-stream; name=\"=?utf-8?b?".base64_encode($file_name)."?=\"\n";
$text .= "Content-Transfer-Encoding:base64\n";
$text .= "Content-Disposition:attachment filename=\"$file_name\"\n\n";
$text .= chunk_split(base64_encode($fread))."\n";
$text .= "\r\n--$bound--\r\n";
mail($emailTo,$subject,$text,$headers);
Вот до этого вот я урезал код. Кодировка файла скрипта - UTF-8
Garda1
Отправлено: 19 Апреля, 2011 - 18:41:15
Новичок
Покинул форум
Сообщений всего: 54
Дата рег-ции: Нояб. 2010
Помог: 0 раз(а)
NeoN121 пишет: CODE (
htmlphp ):
скопировать код в буфер обмена
$bound = 'spravka-1234';
$emailTo = 'neon12121@gmail.com';
$subject = "=?utf-8?b?".base64_encode('Заказ услуги')."?=";
$headers = 'From: us < '.$emailTo.' > '."\r\n";
$headers .= "Mime-Version: 1.0\r\n";
$headers .= "Content-type: multipart/mixed; boundary=\"$bound\"\r\n";
$text .= "--$bound-\r\n";
$text .= "Content-type: text/plain; charset=\"utf-8\"\r\n";
$text .= "Content-Transfer-Encoding: quoted-printable\r\n";
$text .= "Some text\r\n";
$file_name = 'data.csv';
$file = fopen($file_name,"rb");
if(!$file){echo 'файл не прочитан!';exit;}
$fread = fread($file,filesize($file_name));
$text .= "\r\n--$bound\r\n";
$text .= "Content-type: application/octet-stream; name=\"=?utf-8?b?".base64_encode($file_name)."?=\"\n";
$text .= "Content-Transfer-Encoding:base64\n";
$text .= "Content-Disposition:attachment filename=\"$file_name\"\n\n";
$text .= chunk_split(base64_encode($fread))."\n";
$text .= "\r\n--$bound--\r\n";
mail($emailTo,$subject,$text,$headers);
Вот до этого вот я урезал код. Кодировка файла скрипта - UTF-8
Подставил этот код, проверил, у меня работает...
Только файл должен весить больше 0байт
УПС, а вот на Gmail действительно не приходит(Отредактировано автором: 19 Апреля, 2011 - 18:45:17)
NeoN121
Отправлено: 19 Апреля, 2011 - 18:47:24
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
Garda1 пишет: Подставил этот код, проверил, у меня работает...
Ну, уже хорошо. Значит, проблема не в прокладке между монитором и стулом...
И на bk.ru вроде как тоже
(Отредактировано автором: 19 Апреля, 2011 - 18:53:22)
Garda1
Отправлено: 19 Апреля, 2011 - 18:55:38
Новичок
Покинул форум
Сообщений всего: 54
Дата рег-ции: Нояб. 2010
Помог: 0 раз(а)
PHP:
скопировать код в буфер обмена
$bound = 'spravka-1234' ;
$emailTo = 'gardian90905@gmail.com' ;
$headers = 'From: MySite <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= "Вот и должон тут быть аттачЪ<br>\r \n " ;
$file_name = 'jquery-1.3.2.min.js' ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $file_name ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ;
попробовать стоит заменить предыдущий отрывок "Именно Этим"!! С ним у меня на gmail приходит, в чём кардинальное различие не смог найти, только Mail и название файла свои подставь
NeoN121
Отправлено: 19 Апреля, 2011 - 19:06:56
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
Garda1 пишет: PHP:
скопировать код в буфер обмена
$bound = 'spravka-1234' ;
$emailTo = 'gardian90905@gmail.com' ;
$headers = 'From: MySite <' . $emailTo . '>' . "\r \n " ;
$headers .= "Mime-Version: 1.0\r \n " ;
$headers .= "Content-type: multipart/mixed; boundary=\" $bound \" \r \n " ;
$text .= "\n \n --$bound \r \n " ;
$text .= "Content-type: text/html; charset=\" utf-8\" \r \n " ;
$text .= "Content-Transfer-Encoding: quoted-printable\r \n " ;
$text .= "Вот и должон тут быть аттачЪ<br>\r \n " ;
$file_name = 'jquery-1.3.2.min.js' ;
$file = fopen ( $file_name , "rb" ) ; if ( ! $file ) { echo 'файл не прочитан!' ; exit; }
$text .= "\r \n --$bound \n " ;
$text .= "Content-type: application/octet-stream; name=\" =?utf-8?b?" . base64_encode ( $file_name ) . "?=\" \n " ; $text .= "Content-Transfer-Encoding:base64\n " ;
$text .= "Content-Disposition:attachment filename=\" $file_name \" \n \n " ;
$text .= "$bound --\r \n " ;
mail ( $emailTo , $subject , $text , $headers ) ;
попробовать стоит заменить предыдущий отрывок "Именно Этим"!! С ним у меня на gmail приходит, в чём кардинальное различие не смог найти, только Mail и название файла свои подставь
Это удивительно. Но по-прежнему текст письма пуст...
NeoN121
Отправлено: 19 Апреля, 2011 - 19:17:16
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
Garda1 пишет: может файл с другим расширением попробовать отправить?
js тока что попробовал. Файл пришел, текст - нет...
Такое впечатление, что где-то творится херота на уровне моего дорогого провайдера...
NeoN121
Отправлено: 19 Апреля, 2011 - 19:23:54
Новичок
Покинул форум
Сообщений всего: 20
Дата рег-ции: Авг. 2008
Помог: 0 раз(а)
Если юзать скрипт, что по ссылке, то все отлично работает, да
А мой не работает. Причем у разных провайдеров...
(Добавление)
А нененене, сработало на Джино
Сраная Агава, 2 дня ментального секса...
В общем, большущее спасибо за помощь, да))
(Отредактировано автором: 19 Апреля, 2011 - 19:31:36)
Поиск в теме | Версия для печати
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
Powered by ExBB FM 1.0 RC1. InvisionExBB