За последние 24 часа нас посетили 59969 программистов и 1744 робота. Сейчас ищут 1156 программистов ...

прикрепить файл к письму

Тема в разделе "PHP для новичков", создана пользователем Vyacheslav, 3 янв 2010.

  1. Vyacheslav

    Vyacheslav Активный пользователь

    С нами с:
    13 дек 2009
    Сообщения:
    17
    Симпатии:
    0
    Помогите пожалуйста сделать так чтобы мне могли с моей страницы прислать файлы до 50 мегабайт Форму я нашел а как сделать прикрепление файла незнаю.
    prislat.php
    PHP:
    1. <?php
    2. //Генерируем шестизначный ключ, далее передаем его в скрытом поле
    3. if($_SESSION['uid'] =='') {$_SESSION['uid'] = mt_rand(100000,999999); }
    4.  
    5.  
    6. echo '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    7. <head>
    8. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    9. <title>Обратная связь</title>
    10. <style>
    11. form { font-family:Verdana, Arial, Helvetica, sans-serif;
    12. font-size:12px; font-weight:600;
    13. color:#747474;
    14. }
    15.  
    16. </style>
    17. </head>
    18.  
    19. <body>
    20. <div style="background-image:url(bg.gif); background-repeat:no-repeat; width:800px; height:800px" align="center">
    21. <p align="justify"><p align="justify">
    22.     <b>Правила пользования материалами сайта Юридического портала</b>
    23.     <a href="index.htm">&quot;Право в России&quot;</a><p align="justify"><br/>
    24. <b>В случае нарушение авторства, вся ответственность ляжет на нарушителя авторских прав. <br/>
    25.     Все материалы присланы из интернета, Материалы и/или содержимое материалов
    26.     предназначено исключительно для ознакомления, без целей коммерческого
    27.     использования. Все права в отношении материалов и/или содержимого материалов
    28.     принадлежат их законным правообладателям. Любое их использование возможно
    29.     лишь с согласия законных правообладателей. Администрация сайта не несет
    30.     ответственности за возможный вред и/или убытки, возникшие или полученные в
    31.     связи с использованием материалов и/или содержимого данных материалов. Наш
    32.     сайт является виртуальным помещением библиотеки. На основании Федерального
    33.     закона Российской Федерации &quot;Об авторском и смежных правах&quot; (в ред.
    34.     Федеральных законов от 19.07.1995 №110-ФЗ, от 20.07.2004 №72-ФЗ). Все
    35.     материалы представлены исключительно в ознакомительных целях. Если вы
    36.     считаете что ваши материалы не должны здесь находиться напишите
    37.     <a href="contacts.htm">нам</a> и они будут удалены<br/><p align="justify">
    38.  
    39. Мы и многие наши посетители будем благодарны, если Вы поделись своими материалами по юриспруденции.</b><p align="justify">
    40.  
    41. <form action="send.php" method="POST">
    42. Файл (до 50 Мб)<br/>
    43. <input type="file" name="file" size="30" /><br/>
    44. Ваше имя<br/>
    45. <input name="name" size="30" type="text" /><br/>
    46. Ваш e-mail<br/>
    47. <input name="email" size="30" type="text" /><br/>
    48. Сообщение<br/>
    49. <textarea name="message" cols="23"  rows="5"></textarea>
    50. <br/>Введите код подтверждения:
    51.  
    52. <img src="img/image.php" alt="" width="120" height="33" border="0" /><br/> <input style="margin:5px;font-size:30px; font-color:blue; height:34px;width:120px;"  type="text" name="sid" value="" size="6" maxlength="6"/>
    53. <br/><br/>
    54. <input name="do" value="Отправить" type="submit" />
    55. </form>
    56. </div>
    57. </body>
    58. </html>';
    59.  
    60.      ?>
    send.php
    PHP:
    1. <?php
    2. //Запускаем сессию
    3. //Подключаем функции
    4. include("functions.php");
    5. //Подключаем файл конфигурации
    6. include("config.php");
    7.  
    8.  
    9.  
    10. //Создаем шапку
    11. echo '<html xmlns="http://www.w3.org/1999/xhtml">
    12. <head>
    13. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
    14. <title>Обратная связь</title>
    15. <style>
    16. p { font-family:Verdana, Arial, Helvetica, sans-serif;
    17. font-size:14px; font-weight:600;
    18. color:#747474;
    19. }
    20. </style>
    21. </head>
    22. <body>';
    23. //Проверяем совпадает ли переданный идентификатор с реальным
    24. if($_SESSION['uid'] == $_POST['sid']){
    25.  
    26. //Разрушаем сессию
    27.             session_destroy();
    28.  
    29.  //Чистим входящие данные
    30. $file = strip_tags(stripslashes(substr($_POST['file'],0,20)));
    31. $name = strip_tags(stripslashes(substr($_POST['name'],0,20)));
    32. $mail = strip_tags(stripslashes(substr($_POST['email'],0,30)));
    33. $message = strip_tags(stripslashes(substr($_POST['message'],0,3000)));
    34. //Проверяем, была ли нажата кнопка
    35. if($_POST['do']) {
    36.  //Проверяем, был ли выбран файл
    37.     if($file != '') {
    38.     //Проверяем, было ли введено имя
    39.     if($name != '') {
    40.      //Запускаем функцию по проверке e-mail адреса
    41.         if(checkmail($mail) !== -1) {
    42.          //Проверяем, было ли введено сообщение письма
    43.             if($message != '')
    44.            
    45.              {
    46.              //Подключаем файл шаблона
    47. include("tpl.php");
    48.             //Передаем функции необходимые аргументы
    49.         if(sendmail($mailto,"Сообщение с сайта",$tpl,$headers) !== FALSE) {
    50.                   //При условии что функция сработала - выводим сообщение об удачно завершенной операции
    51.             echo '<p>Сообщение отправлено<br/><a href="prislat.php">назад</a></p>';
    52.  
    53.             }
    54.         else {
    55.         //Иначе, сообщаем об ошибке
    56.             echo '<p>Возникла ошибка при отправке, повторите позднее<br/><a href="prislat.php">назад</a></p>';
    57.  
    58. }
    59.  }
    60.     else {echo '<p>Введите комментарий <a href="prislat.php">назад</a></p>';}       
    61.         }
    62.     else {echo '<p>Введите корректный электронный адрес <a href="prislat.php">назад</a></p>';}   
    63.     }
    64.     else { echo '<p>Введите имя <a href="prislat.php">назад</a></p>'; }
    65.     }
    66.  else {echo '<p>Выберите файл <a href="prislat.php">назад</a></p>';}
    67.  }
    68.  
    69. //Здесь срабатывает исключение, если страница была обновлена клавишей F5
    70. else { echo '<p>Ошибка</p>';
    71. //Разрушаем сессию
    72.             session_destroy();}
    73.  
    74. echo '</body></html>';
    75. //Разрушаем сессию
    76.             session_destroy();
    77. ?>
    functions.php
    PHP:
    1. <?php
    2.  
    3.  
    4. function checkmail($mail) {
    5.    // режем левые символы и крайние пробелы
    6.    $mail=trim($mail);
    7.    // если пусто - выход
    8.    if (strlen($mail)==0) return -1;
    9.    if (!preg_match("/^[a-z0-9_-]{1,20}+(\.){0,2}+([a-z0-9_-]){0,5}@(([a-z0-9-]+\.)+(com|net|org|mil|".
    10.    "edu|gov|arpa|info|biz|inc|name|[a-z]{2})|[0-9]{1,3}\.[0-9]{1,3}\.[0-".
    11.    "9]{1,3}\.[0-9]{1,3})$/is",$mail))
    12.    return -1;
    13.    return $mail;
    14. }
    15.  
    16. function sendmail($mail,$subject,$message,$headers) {
    17.  
    18.  
    19. if(mail($mail,$subject,$message,$headers)) { return TRUE;}
    20. else {return FALSE;}
    21.  
    22. }
    23.  
    24. ?>
    config.php
    PHP:
    1. <?php
    2.  
    3.  
    4. // Для отправки e-mail в виде HTML устанавливаем необходимый mime-тип и кодировку
    5. $headers  = 'MIME-Version: 1.0' . "\r\n";
    6. $headers .= 'Content-type: text/html; charset=windows-1251' . "\r\n";
    7.  
    8. // Откуда пришло
    9. $headers .= 'From: FeedbackForm' . "\r\n";
    10. //На какой адрес отвечать
    11. $headers.='Reply-To:'.$mail.'' . "\r\n" ;
    12. //Здесь укажите электронный адрес, куда будут уходить сообщения
    13. $mailto = "pravo-v-russia@yandex.ru";
    14. ?>
    image.php
    PHP:
    1. <?php
    2. //Запускаем сессию
    3. //Создаем изображение из 3-х возможных подложек
    4. $im=ImageCreateFromJpeg(round(mt_rand(1,3)).".jpg");
    5. //Генерируем цвет надписи
    6. $color=ImageColorAllocate($im,mt_rand(0,255),mt_rand(0,255),mt_rand(0,255));
    7. //Формируем надпись, используя шрифт
    8. ImageTtfText($im, 23, mt_rand(-5,5), 3, 30, $color, "addict.ttf",  $_SESSION['uid']);
    9. //Указываем тип содержимого
    10. Header("Content-type: image/jpeg");
    11. //Создаем и выводим изображение
    12. ImageJpeg($im);
    13. //Разрушаем изображение
    14. ?>
    [/php]
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург