Задать вопрос
  • Где можно скачать готовый загрузчик файлов?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Спасибо большое за подробный ответ! Я представляла себе это немного по-другому: что есть некий код, который это выполняет, и который не составит труда закинуть в папку сайта) Теперь я поняла, что даже не полезу туда, мне это не по силам) Буду искать другое решение
  • Как убрать статус маловостребованной страницы?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Спасибо большое! Ваш ответ внес ясность в мое понимание Яндекса))
    Я стала пользоваться "живым трафиком" из бирж заданий, где людям платят за переход по сайтам. Надеюсь, это даст нужный результат. Во всяком случае, Яндекс перестал удалять страницы из поиска (пока что)...
  • Как убрать статус маловостребованной страницы?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Василий Банников, Сайт скупки антиквариата. По сравнению с интернет-магазинами телефонов, там не очень высокая конкуренция.
  • Почему не отправляются фото с формы обратной связи если отправлять с телефона?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Дмитрий, там просто дурацкая ошибка в коде, но теперь буду знать, что в js еще может быть дело)
  • Почему не отправляются фото с формы обратной связи если отправлять с телефона?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    ThunderCat Ой, спасибо Вам большое! Я уже расстроилась, что опять всё зря)) Спасибо большое! Я уже ничего не вижу, а Вы так быстро нашли мою дурацкую ошибку)
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, 64e83c6f664a3713870908.png

    файл пришел на почту, при открывании картинки она скачивается в папку загрузки на комп, ей присваивается новое имя (1). Не знаю, что будет в дальнейшем, но вроде пока все работает как надо?
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, Спасибо Вам большое! Прям вот от души благодарю)
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, у меня получилось отправить картинку!!!! Да, это был тупой способ подбора рабочего кода, но все-таки)) Правда получилось с некоторой особенностью: сначала приходит письмо без картинки, потом с картинкой)) Но мне это не мешает, я так рада!!!
    Вот с помощью этой чудо-комбинациии все получилсь:
    <form enctype="multipart/form-data" method="post" id="feedback-form">
                <label for="nameFF">Имя:</label>
                <input type="text" name="nameFF" id="nameFF" required placeholder="например, Иван Иванович Иванов" x-autocompletetype="name" class="w100 border">
                <label for="contactFF">Email:</label>
                <input type="email" name="contactFF" id="contactFF" required placeholder="например, ivan@yandex.ru" x-autocompletetype="email" class="w100 border">
                <label for="fileFF">Прикрепить файл:</label>
                <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
                <label for="messageFF">Сообщение:</label>
                <textarea name="messageFF" id="messageFF" required rows="5" placeholder="Детали заявки…" class="w100 border"></textarea>
                <br>
                <input value="Отправить" type="submit" id="submitFF">
                </form>


    document.getElementById('feedback-form').addEventListener('submit', function(evt){
      var http = new XMLHttpRequest(), f = this;
      evt.preventDefault();
      http.open("POST", "mail.php", true);
      http.onreadystatechange = function() {
        if (http.readyState == 4 && http.status == 200) {
          alert(http.responseText);
          if (http.responseText.indexOf(f.nameFF.value) == 0) { // очистить поле сообщения, если в ответе первым словом будет имя отправителя
            f.messageFF.removeAttribute('value');
            f.messageFF.value='';
          }
        }
      }
      http.onerror = function() {
        alert('Извините, данные не были переданы');
      }
      http.send(new FormData(f));
    }, false);


    <?php
    if (isset ($_POST['contactFF'])) {
      $to = "info@antik88.ru"; // поменять на свой электронный адрес
      $from = $_POST['contactFF'];
      $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
      $message = "Имя: ".$_POST['nameFF']."\nEmail: ".$from."\nIP: ".$_SERVER['REMOTE_ADDR']."\nСообщение: ".$_POST['messageFF'];
      $boundary = md5(date('r', time()));
      $filesize = '';
      $headers = "MIME-Version: 1.0\r\n";
      $headers .= "From: " . $from . "\r\n";
      $headers .= "Reply-To: " . $from . "\r\n";
      $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
      $message="
    Content-Type: multipart/mixed; boundary=\"$boundary\"
    
    --$boundary
    Content-Type: text/plain; charset=\"utf-8\"
    Content-Transfer-Encoding: 7bit
    
    $message";
      for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
         if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
             $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
             $filename = $_FILES['fileFF']['name'][$i];
             $filetype = $_FILES['fileFF']['type'][$i];
             $filesize += $_FILES['fileFF']['size'][$i];
             $message.="
    
    --$boundary
    Content-Type: \"$filetype\"; name=\"$filename\"
    Content-Transfer-Encoding: base64
    Content-Disposition: attachment; filename=\"$filename\"
    
    $attachment";
         }
       }
       $message.="
    --$boundary--";
    
      if ($filesize < 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
        mail($to, $subject, $message, $headers);
        echo $_POST['nameFF'].', Ваше сообщение получено, спасибо!';
      } else {
        echo 'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
      }
    }
    ?>
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Дмитрий, Спасибо, буду разбираться, но все дело в моей тупости, я даже не сделала папку на сервере для загрузки файлов, потому что не знала, что она нужна... кошмар)
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, я поняла, в чем тут дело! Нужна же папка на сервере! Вроде облачного хранилища, куда будут поступать загруженные с формы файлы! Я создала папку download, ввела данные FTP-аккаунта в php файл, но у меня вопрос: как теперь соединить этот код для файлов и код для отправки имени и телефона? Я же не могу просто взять 2 разных кода и засунуть в один файл. Уже пробовала, не работает, конечно. Вот код для изображений. отдельно он тоже не работает, в нем же не почтового адреса , а я не знаю, куда его вставить:
    <?php
    
    function upload($filename)
    {
    
    $login="ваш_логин";
    $pass="ваш_пароль";
    $host="имя_фтп";
    $path="путь_к_папке";
    
    $tmp = $_FILES[$filename]['tmp_name'];
    $aname = $_FILES[$filename]['name'];
    
    $connect = ftp_connect($host);
    if(!$connect) exit();
    $result = ftp_login($connect, $login, $pass);
    if ($result==false) exit();
    if (ftp_chdir($connect, $path)) ftp_put($connect, $aname, $tmp, FTP_BINARY);
    else exit();
    ftp_quit($connect);
    unlink($tmp);
    
    };
    
    if (isset($filename)) upload('filename')
    
    ?>
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Дмитрий, форма для отправки файла, я ее вот тут нашла: https://webref.ru/html/form/enctype
    вроде с ней должно быть все в порядке..
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, к сожалению, приходит только информация с заполненных полей (имя, телефон, емейл и вопрос из textarea. Но вот на файл и намека нет, совсем ничего. Может быть, я что-то не указала в php mail. Буду искать инструкцию на русском к нему, может что-то надо дописать. Или вчитываться в каждую строчку кода. Или бросить это дело совсем) Мне самой уже противно задавать вопросы из серии "как крутить педали на велосипеде, очень хочу кататься")
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, спасибо, большое, я буду стараться понять, были они загружены на сервер...
    Хотя мне уже проще принять решение исключить форму совсем)
    Благодарю Вас и хорошего Вам дня :)
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    ThunderCat, даже с одним файлом ничего не приходит. Как же мне понять, что происходит?
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Дмитрий, Да, это хостинг Beget, файл весит 100 кб)
  • Отправка вложений через php mailer. Почему не отправляются изображения?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, во-первых я безумно благодарна Вам, что Вы мне помогаете, Ваши ответы для меня бесценны.
    Зачем форма? Есть ссылки на вотсап и телеграмм, но мне кажется, что нужно ориентироваться и на людей, которым удобна форма заявки на сайте. Это сбор контактных данных. К тому же у всех абсолютно всех конкурентов она есть. Наличие формы говорит о том, что сайтом занимались не на коленке, это не просто ссылка на ватсап, как будто мошенники сляпали за 2 минуты, а серьезный сайт.
    Зачем файлы? это не дамский каприз. Мне нужно, чтобы клиенты присылали на оценку подробные фото антиквариата. Там не обойдешься одной фотографией, нужно несколько. Вдруг кто-то не пользуется телеграммом и ватсапом?
    Я не отправила полный код, потому что по количеству символов он сюда не помещается. Идея закинуть его с сторонний сервис типа CodePen посетила меня только сейчас)) Мне очень стыдно за свою тупость, но я должна осилить этот сайт. Я понимаю, что залезла в то, что мне совершенно не по силам. Но все же рассчитываю закончить сайт.
    Последний раз попробую победить эту форму с файлами, и ,если ничего не выйдет, буду создавать образ прогрессивных сайтоделов) без формы))
    Я убрала копированные input и отправила 1 файл весом 100 кб, формата jpg, и ничего не пришло.
    Подскажите, пожалуйста, как понять, в чем тут ошибка?
    https://codepen.io/qggsxsip-the-selector/pen/gOZaOdv
  • Почему с формы обратной связи на почту хостинга приходит пустое письмо?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, у меня просто не получается эта "отладка", в исходном коде я ничего не нашла, и решила, что просто не хватает кода, который отвечает за вложения...
    Спасибо Вам огромное, я попробую разобраться с php мейлером, хотя и инструкция на английском не готовит мне ничего хорошего... Я находила его на git и просто не рискнула взяться за него именно из-за отсутствия объяснения на русском, боюсь нахеровертить чего-то страшного и все испортить. Но, если Вы говорите, что это действительно хорошее решение, я попробую.
  • Почему с формы обратной связи на почту хостинга приходит пустое письмо?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, сегодня пыталась понять, какая же часть кода отвечает за отправку вложений. в итоге решила добавить
    $file = "act.jpg";
    Мне показалось логичным это, и я добавила еще
    $fileRead = fopen($file, "r"); // открываем файл
            $contentFile = fread($fileRead, filesize($file)); // считываем его до конца
            fclose($fileRead); // закрываем файл
            $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=\n"; 
            $bodyMail .= "Content-Transfer-Encoding: base64\n"; // кодировка файла
            $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n";
            $bodyMail .= chunk_split(base64_encode($contentFile))."\n"; // кодируем и прикрепляем файл
            $bodyMail .= "--".$separator ."--\n";

    Письма приходят по прежнему без загруженных изображений. Возможно, это совсем не то, что нужно и без jquery тут не обойтись? Или все-таки можно найти походящий код? Если спросить проще, насколько я близка к решению проблемы отправки файлов вот с этим кодом?
    <?php
    var_dump($_POST);
    $method = $_SERVER['REQUEST_METHOD'];
    $admin_email  = "info@antik88.ru";
    $file = "act.jpg"; // файл
    //Script Foreach
    $c = true;
    if ( $method === 'POST' ) {
    
    	$form_subject = trim($_POST["form_subject"]);
    
    	foreach ( $_POST as $key => $value ) {
    		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
    			$message .= "
    			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
    				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
    				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
    			</tr>
    			";
    		}
    	}
    } else if ( $method === 'GET' ) {
    
    	$project_name = trim($_GET["project_name"]);
    	$admin_email  = trim($_GET["admin_email"]);
    	$form_subject = trim($_GET["form_subject"]);
    	 $fileRead = fopen($file, "r"); // открываем файл
            $contentFile = fread($fileRead, filesize($file)); // считываем его до конца
            fclose($fileRead); // закрываем файл
            $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=\n"; 
            $bodyMail .= "Content-Transfer-Encoding: base64\n"; // кодировка файла
            $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n";
            $bodyMail .= chunk_split(base64_encode($contentFile))."\n"; // кодируем и прикрепляем файл
            $bodyMail .= "--".$separator ."--\n";
    
    	foreach ( $_GET as $key => $value ) {
    		if ( $value != "" && $key != "project_name" && $key != "admin_email" && $key != "form_subject" ) {
    			$message .= "
    			" . ( ($c = !$c) ? '<tr>':'<tr style="background-color: #f8f8f8;">' ) . "
    				<td style='padding: 10px; border: #e9e9e9 1px solid;'><b>$key</b></td>
    				<td style='padding: 10px; border: #e9e9e9 1px solid;'>$value</td>
    			</tr>
    			";
    		}
    	}
    }
    
    $message = "<table style='width: 100%;'>$message</table>";
    
    function adopt($text) {
    	return '=?UTF-8?B?'.Base64_encode($text).'?=';
    }
    
    $headers = "MIME-Version: 1.0" . PHP_EOL .
    "Content-Type: text/html; charset=utf-8" . PHP_EOL .
    'From: '.adopt($project_name).' <'.$admin_email.'>' . PHP_EOL .
    'Reply-To: '.$admin_email.'' . PHP_EOL;
    
    mail($admin_email, adopt($form_subject), $message, $headers );

    И еще такой вопрос. Этот емейл info@antik88.ru никто не должен видеть? нельзя размещать его на сайте в контактной информации? или все-таки можно?
  • Почему с формы обратной связи на почту хостинга приходит пустое письмо?

    Anna_Polyakovich
    @Anna_Polyakovich Автор вопроса
    Ипатьев, Спасибо большое, что делитесь профессиональными знаниями) буду учиться)
    Хорошего Вам дня!)