За последние 24 часа нас посетили 17260 программистов и 1597 роботов. Сейчас ищут 1775 программистов ...

Прикрепление в обратной связи картинки

Тема в разделе "PHP для новичков", создана пользователем StepanAMK, 20 сен 2017.

  1. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    Здравствуйте ребята. Столкнулся с проблемой, нужно что бы в анкете прикрепляли фото формата jpg или png. Помогите пожалуйста, и подскажите в каком месте и какой код надо написать заранее благодарю.
    Код обработчика:
    PHP:
    1. <?php
    2.  
    3. if( ! defined( 'DATALIFEENGINE' ) ) {
    4.     die( "Hacking attempt!" );
    5. }
    6.  
    7. if( isset( $_POST['send'] ) ) {
    8. include_once ENGINE_DIR . '/classes/mail.class.php';
    9. $mail = new dle_mail( $config );
    10. $tema = "Новая анкета по трудоустройству с сайта";
    11. $server = $_POST['server'];
    12.  
    13. $email=trim(htmlspecialchars($_POST["email"]));
    14. if(strlen($email)=="0"){$error.="Заполните поле <b>E-Mail</b><br>";}
    15.  
    16.  
    17. $port=trim(htmlspecialchars($_POST["port"]));
    18.  
    19. $period=trim(htmlspecialchars($_POST["period"]));
    20.  
    21. $message=trim(htmlspecialchars($_POST["message"]));
    22.  
    23. if(isset($_FILES['upl'])) {
    24. if($_FILES['upl']['error'] == 0){
    25. $mail->AddAttachment($_FILES['upl']['tmp_name'], $_FILES['upl']['name']);
    26. }
    27. }
    28.  
    29. if(@$error){
    30.     msgbox("Внимание, обнаружена ошибка", $error);
    31. }else{
    32.    
    33.     // Если поле выбора вложения не пустое - закачиваем его на сервер
    34.  
    35.   if (!empty($_FILES['mail_file']['tmp_name']))
    36.  
    37.   {
    38.  
    39.     // Закачиваем файл
    40.  
    41.     $path = $_FILES['mail_file']['name'];
    42.  
    43.     if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
    44.  
    45.   }
    46.  
    47.   $thm = $_POST['mail_subject'];
    48.  
    49.   $msg = $_POST['mail_msg'];
    50.  
    51.   $mail_to = $_POST['mail_to'];
    52.  
    53. $test = "
    54. Привет это пишет тебе твой самый лучший сайтик!
    55. У меня кто-то заполнил новую анкетку, Скорее прочти её!!!
    56. ==============================================
    57. Имя: ".$_POST['name']."
    58. Номер телефона: ".$_POST['tel']."
    59. Номер WhatsApp: ".$_POST['telWhatsApp']."
    60. Номер Viber: ".$_POST['telViber']."
    61. Эл. почта: ".$_POST['email']."
    62. Полных лет: ".$_POST['vozrost']."
    63. Рост: ".$_POST['rost']."
    64. Вес: ".$_POST['ves']."
    65. Грудь Талия Бедра: ".$_POST['gryd_talia_bedra']."
    66. Наличие на теле: ".$_POST['taty']." | ".$_POST['pirsing']." | ".$_POST['shrami']." | ".$_POST['drygoe'].".
    67. Знание иностранных языков: ".$_POST['yaziki']."
    68. Есть опыт работы: ".$_POST['opit']."
    69. Наличие портфолио для работы: ".$_POST['portfolio']."
    70. Узнала: ".$_POST['kak']."
    71. О себе: ".$_POST['osebe']."
    72. ";
    73.  
    74.  
    75.  
    76. $mail->send( "тут у меня почта", $tema, $test);
    77. msgbox("Спасибо", "Благодарим Вас за анкету. Ожидайте с вами свяжутся.");
    78. }
    79. }
    80.  
    81.  
    82.  
    83. $tpl->load_template( 'rek.tpl' );
    84. $tpl->copy_template = "<form  method=\"post\" id=\"sendmail\" name=\"sendmail\" action=\"\">\n" . $tpl->copy_template . "<input name=\"send\" type=\"hidden\" value=\"send\" /></form>";
    85. $tpl->compile( 'content' );
    86. $tpl->clear();
    87.  
    88. ?>
    --- Добавлено ---
    я уже пытался сделать что бы фото заливалась но так и не вышло, это мы видим в коде
    Код (Text):
    1. }else{
    2.  
    3.     // Если поле выбора вложения не пустое - закачиваем его на сервер
    4.   if (!empty($_FILES['mail_file']['tmp_name']))
    5.   {
    6.     // Закачиваем файл
    7.     $path = $_FILES['mail_file']['name'];
    8.     if (copy($_FILES['mail_file']['tmp_name'], $path)) $picture = $path;
    9.   }
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.859
    Симпатии:
    748
    Адрес:
    Татарстан
    не пытался..... а какую то отсебятину выдумывал... гуглится на раз
    сначала нужно файлы загрузить на ваш сервер - move_uploaded_file
    и только потом - отправлять указывая реальный путь на вашем сервере
     
  3. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    безопасная загрузка изображений
    https://github.com/MouseZver/My-garbage-code/tree/master/upload_class

    пост запросы начало валидации:
    PHP:
    1. if ( $_SERVER['REQUEST_METHOD'] === 'POST' ) { ... }
    --- Добавлено ---
    дальнейшая валидация пост данных:
    PHP:
    1. $ARGS = [
    2.         'group1w' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
    3.         'name' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
    4.         'phone' => FILTER_SANITIZE_NUMBER_INT,
    5.         'email' => FILTER_VALIDATE_EMAIL,
    6.         'select' => FILTER_SANITIZE_NUMBER_INT
    7.     ];
    8.  
    9.     $INPUTS = filter_input_array ( INPUT_POST, $ARGS );
    --- Добавлено ---
    и не забываем включать ошибки
    PHP:
    1. <?php
    2.  
    3. error_reporting ( E_ALL | E_STRICT );
    4.  
    5. /* ... */
    --- Добавлено ---
    @StepanAMK
    PHP:
    1. if(@$error)
    когда соберетесь забывать про собак поповича ?
     
  4. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5

    Подскажи пожалуйста где именно этот код надо вставить, я вообще не понимэ
    --- Добавлено ---
    Понимаю что отсебятина, гуглил пытался но нечего не вышло пришол за помощью к вам.
     
  5. StepanAMK

    StepanAMK Новичок

    С нами с:
    24 июн 2016
    Сообщения:
    138
    Симпатии:
    5
    Всем кто принимал участие спасибо, проблема решена.

    Решение проблемы:
    Код (Text):
    1. <?php
    2. if (isset ($_POST['contactFF'])) {
    3.   $to = "jobsvipgirls@city-tours-models.com";
    4.   $from = $_POST['contactFF'];
    5.   $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
    6.   $message = "
    7. Имя: ".$_POST['nameFF']."
    8. nEmail: ".$from."
    9. Телефон: ".$_POST['tel']."
    10. WhatsApp: ".$_POST['telWhatsApp']."
    11. Viber: ".$_POST['telViber']."
    12. Полных лет: ".$_POST['vozrost']."
    13. Рост: ".$_POST['rost']."
    14. Вес: ".$_POST['ves']."
    15. Грудь Талия Бедра: ".$_POST['gryd_talia_bedra']."
    16. Размер груди: ".$_POST['siski']."
    17. Наличие на теле татуировок, пирсинга, шрамов и пр.: ".$_POST['taty']." | ".$_POST['pirsing']." | ".$_POST['shrami']." | ".$_POST['drygoe']." |
    18. Знание иностранных языков: ".$_POST['yaziki']."
    19. Есть опыт работы: ".$_POST['opit']."
    20. Наличие портфолио для работы: ".$_POST['portfolio']."
    21. Как Вы узнали о нас?: ".$_POST['kak']."
    22. Расскажите кратко о себе: ".$_POST['osebe'];
    23.   $boundary = md5(date('r', time()));
    24.   $filesize = '';
    25.   $headers = "MIME-Version: 1.0\r\n";
    26.   $headers .= "From: " . $from . "\r\n";
    27.   $headers .= "Reply-To: " . $from . "\r\n";
    28.   $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
    29.   $message="
    30. Content-Type: multipart/mixed; boundary=\"$boundary\"
    31.  
    32. --$boundary
    33. Content-Type: text/plain; charset=\"utf-8\"
    34. Content-Transfer-Encoding: 7bit
    35.  
    36. $message";
    37.   for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
    38.       if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
    39.          $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
    40.          $filename = $_FILES['fileFF']['name'][$i];
    41.          $filetype = $_FILES['fileFF']['type'][$i];
    42.          $filesize += $_FILES['fileFF']['size'][$i];
    43.          $message.="
    44.  
    45. --$boundary
    46. Content-Type: \"$filetype\"; name=\"$filename\"
    47. Content-Transfer-Encoding: base64
    48. Content-Disposition: attachment; filename=\"$filename\"
    49.  
    50. $attachment";
    51.      }
    52.    }
    53.    $message.="
    54. --$boundary--";
    55.  
    56.   if ($filesize < 10000000) {
    57.     mail($to, $subject, $message, $headers);
    58.     $output = '<script>alert("Ваше сообщение получено, спасибо!");</script>';
    59.   } else {
    60.     $output = '<script>alert("Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.");</script>';
    61.   }
    62. }
    63. ?>
    64.  
    65.  
    66. <!DOCTYPE HTML>
    67.  
    68. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    69. <?php echo $output; ?>
    70. <form enctype="multipart/form-data" method="post" id="feedback-form">
    71.     <center>
    72. <label for="nameFF">Как Вас завут?</label><br>
    73. <input type="text" name="nameFF" id="nameFF" required placeholder="Введите своё Ф.И.О. полностью." x-autocompletetype="name" class="w100 border"><br><br>
    74.        
    75. <label for="nameFF">Ваш телефон:</label><br>
    76. <input type="text" name="tel" id="nameFF" required placeholder="Ваш активный номер телефона для связи." x-autocompletetype="name" class="w100 border"><br><br>
    77.        
    78. <label for="contactFF">Email:</label><br>
    79. <input type="email" name="contactFF" id="contactFF" required placeholder="например, sveta@yandex.ru" x-autocompletetype="email" class="w100 border"><br><br>
    80.        
    81. <label for="contactFF">Ваш WhatsApp: <br>(если есть -указывайте в международном формате: + страна/код региона (код города) номер абонента)</label><br>
    82. <input type="text" name="telWhatsApp" id="contactFF" required placeholder="Ваш активный номер телефона месенджера WhatsApp" x-autocompletetype="email" class="w100 border"><br><br>
    83.        
    84. <label for="contactFF">Ваш Viber:<br> (если есть -указывайте в международном формате: + страна/код региона (код города) номер абонента)</label><br>
    85. <input type="text" name="telViber" id="contactFF" required placeholder="Ваш активный номер телефона месенджера Viber" x-autocompletetype="email" class="w100 border"><br><br>
    86.        
    87. <label for="contactFF">Сколько полных лет:</label><br>
    88. <input type="text" name="vozrost" id="contactFF" required placeholder="Введите сколько вам полных лет" x-autocompletetype="email" class="w100 border"><br><br>        
    89.        
    90. <label for="contactFF">Ваш рост: (укажите в сантиметрах)</label><br>
    91. <input type="text" name="rost" id="contactFF" required placeholder="Введите ваш рост в сантиметрах" x-autocompletetype="email" class="w100 border"><br><br>      
    92.        
    93. <label for="contactFF">Ваш вес: (укажите в киллограммах)</label><br>
    94. <input type="text" name="ves" id="contactFF" required placeholder="Введите ваш вес в килограммах" x-autocompletetype="email" class="w100 border"><br><br>        
    95.        
    96. <label for="contactFF">Грудь Талия Бедра: (в сантиметрах через запятую.)</label><br>
    97. <input type="text" name="gryd_talia_bedra" id="contactFF" required placeholder="Примерно вот так 90,60,90" x-autocompletetype="email" class="w100 border"><br><br>        
    98.        
    99. <label for="contactFF">Размер груди: (укажите натуральная или сделанная)</label><br>
    100. <input type="text" name="siski" id="contactFF" required placeholder="Примерно вот так, Размер 2, натуральная." x-autocompletetype="email" class="w100 border"><br><br>      
    101.        
    102. <label for="contactFF">Наличие на теле татуировок, пирсинга, шрамов и пр.:</label><br>
    103. <input type="checkbox" name="taty" value="Есть тату |"> Татуировок <b>|</b>
    104. <input type="checkbox" name="pirsing" value="Есть пирсинга |"> Пирсинг <b>|</b>
    105. <input type="checkbox" name="shrami" value="Есть Шрамы |"> Шрамы <b>|</b>
    106. <input type="checkbox" name="drygoe" value="Прочие |"> Прочие <b>|</b><br><br>    
    107.        
    108. <label for="contactFF">Знание иностранных языков:</label><br>
    109. <input type="text" name="yaziki" id="contactFF" required placeholder="Введите через запятую какими иностранными языками вы владеете." x-autocompletetype="email" class="w100 border"><br><br>      
    110.        
    111. <label for="contactFF">Есть опыт работы?</label><br>
    112. <select name="opit" class="f_input">
    113. <option selected="selected" value="Нет">Нет.</option>
    114. <option selected="selected" value="Да">Да.</option></select><br><br>      
    115.                
    116. <label for="fileFF">Прикрепить свои фотографии:</label><br><br>
    117. <b>Фото №1</b> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
    118. <b>Фото №2</b> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100"><br><br>
    119. <b>Фото №3</b> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
    120. <b>Фото №4</b> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100"><br><br>
    121. <b>Фото №5</b> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
    122. <b>Фото №6</b> <input type="file" name="fileFF[]" multiple id="fileFF" class="w100"><br><br>
    123.        
    124. <label for="contactFF">Наличие портфолио для работы:</label><br>
    125. <select name="portfolio" class="f_input">
    126. <option selected="selected" value="Нету">Нету.</option>
    127. <option selected="selected" value="Есть">Есть.</option></select><br><br>    
    128.        
    129. <label for="contactFF">Как Вы узнали о нас?</label><br>      
    130. <select name="kak" class="f_input">
    131. <option selected="selected" value="По запросу в интернете (Яндекса, Google и т.д.)">По запросу в интернете (Яндекса, Google и т.д.).</option>
    132. <option selected="selected" value="Рекомендовали знакомые">Рекомендовали знакомые.</option>
    133. <option selected="selected" value="В рекламном агенстве">Из социальных сетей.</option>
    134. <option selected="selected" value="Мне предложили я заинтересовался">Мне предложили я заинтересовалась.</option>
    135. </select><br><br>      
    136.        
    137.      
    138. <label for="messageFF">Расскажите кратко о себе:</label><br>
    139. <textarea name="osebe" id="messageFF" required rows="5" placeholder="Расскажите нам кратко о себе." class="w100 border"></textarea>
    140. <br>
    141. <input value="Отправить" type="submit" id="submitFF">
    142.         </center>
    143. </form>
    144.  
    145. <center><h4><font color="Lime">ВНИМАНИЕ: Прежде чем отправить нам заполненную анкету проверьте правильно ли вы указали свои контактные данные (e-mail, WhatsApp, Viber Телефон), в противном случае мы не сможем с вами связаться!</font></h4></center>
     
  6. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.794
    Симпатии:
    1.330
    Адрес:
    Лень
    Иногда задаюсь вопросом - а вам это надо ... ?