• Как настроить отправку файла в почтовой форме с phpmailer?

    @keko3keke Автор вопроса
    Решил так.

    Добавив
    // Прикрипление файлов к письму
    if (!empty($_FILES['userfile']['name'][0])) {
        for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
            $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
            $filename = $_FILES['userfile']['name'][$ct];
            if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
                $mail->addAttachment($uploadfile, $filename);
            } else {
                $msg .= 'Не удалось прикрепить файл ' . $uploadfile;
            }
        }   
    }


    В итоге все выглядит так.
    <?php 
    
    require_once('phpmailer/PHPMailerAutoload.php');
    $mail = new PHPMailer;
    $mail->CharSet = 'utf-8';
    
    $name = $_POST['user_name'];
    $phone = $_POST['user_phone'];
    $email = $_POST['user_email'];
    $tema = $_POST['tema'];
    $message = $_POST['message'];
    
    //$mail->SMTPDebug = 3;                               // Enable verbose debug output
    
    $mail->isSMTP();                                      // Set mailer to use SMTP
    $mail->Host = 'smtp.mail.ru';  																							// Specify main and backup SMTP servers
    $mail->SMTPAuth = true;                               // Enable SMTP authentication
    $mail->Username = 'скрыто'; // Ваш логин от почты с которой будут отправляться письма
    $mail->Password = 'скрыто'; // Ваш пароль от почты с которой будут отправляться письма
    $mail->SMTPSecure = 'ssl';                            // Enable TLS encryption, `ssl` also accepted
    $mail->Port = 465; // TCP port to connect to / этот порт может отличаться у других провайдеров
    
    $mail->setFrom('скрыто'); // от кого будет уходить письмо?
    $mail->addAddress('скрыто');     // Кому будет уходить письмо 
    //$mail->addAddress('ellen@example.com');               // Name is optional
    //$mail->addReplyTo('info@example.com', 'Information');
    //$mail->addCC('cc@example.com');
    //$mail->addBCC('bcc@example.com');
    
    // Прикрипление файлов к письму
    if (!empty($_FILES['userfile']['name'][0])) {
        for ($ct = 0; $ct < count($_FILES['userfile']['tmp_name']); $ct++) {
            $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['userfile']['name'][$ct]));
            $filename = $_FILES['userfile']['name'][$ct];
            if (move_uploaded_file($_FILES['userfile']['tmp_name'][$ct], $uploadfile)) {
                $mail->addAttachment($uploadfile, $filename);
            } else {
                $msg .= 'Не удалось прикрепить файл ' . $uploadfile;
            }
        }   
    }
    
    
    $mail->isHTML(true);                                  // Set email format to HTML
    
    $mail->Subject = 'скрыто';
    $mail->Body    = "<b>Имя:</b> $name <br>
                        <b>Телефон:</b> $phone<br>
                        <b>Почта:</b> $email<br>
                        <b>Тема:</b> $tema<br>
                        <b>Сообщение:</b><br>$message";
    $mail->AltBody = '';
    
    if(!$mail->send()) {
        echo 'Error';
    } else {
        header('location: /');
    }
    ?>


    Так выглядит форма. Вдруг кому пригодится.
    <form action="mail.php" method="POST" enctype="multipart/form-data">
              <div class="form-header">
                <i class="fa fa-phone"></i>
                <div class="text">
                  <div class="title">Бесплатный просчет</div>
                </div>
              </div>
              <div class="form-body">
                <div class="row">
                  <div class="form-group">
                    <div class="col-md-12">
                      <label>Ваше имя: <span class="required-star">*</span></label>
                      <div class="input">
                        <input type="text" name="user_name" class="form-control required " required><i class="fa fa-user"></i> </div>
                    </div>
                  </div>
                </div>
                <div class="row">
                  <div class="form-group">
                    <div class="col-md-12">
                      <label>Телефон: <span class="required-star">*</span></label>
                      <div class="input">
                        <input type="tel" name="user_phone" class="form-control required phone" required><i class="fa fa-phone"></i> </div>
                    </div>
                  </div>
                </div>
                <div class="row">
                  <div class="form-group">
                    <div class="col-md-12">
                      <label>Email: <span class="required-star">*</span></label>
                      <div class="input">
                        <input type="email" name="user_email" class="form-control required" required><i class="fa fa-email"></i> </div>
                    </div>
                  </div>
                </div>            
                <div class="row">
                  <div class="form-group">
                    <div class="col-md-12">
                      <label>Файл: <span class="required-star"></span></label>
                      <div class="input">
                        <input type="file" name="userfile[]" id="userfile" class="form-control"><i class="fa fa-file"></i> </div>
                    </div>
                  </div>
                </div>
                <div class="row processing-block">
                  <div class="form-group">
                    <div class="col-md-12">
                      <div class="input">
                        <input id="checkbox" class="processing_approval" type="checkbox" name="checkbox" required >
                        <label for="processing_approval">Я согласен на
                          <a href="/privacy.php" target="_blank" rel="nofollow">обработку персональных данных</a>
                        </label>
                      </div>
                    </div>
                  </div>
                </div>
              </div>
              <div class="form-footer clearfix">
                <div class="pull-left required-fileds">
                  <i class="star">*</i> - Обязательные поля </div>
                <div class="pull-right">
                  <input class="btn-lg btn btn-default" type="submit" name="submit" id="submit" value="Отправить" />
                </div>
              </div>
            </form>
    Ответ написан
    Комментировать
  • Что я делаю не так при посадке меню на wp?

    @keko3keke Автор вопроса
    Решил таким способом.
    <?php 
    						$menu_top = wp_nav_menu('style=none&echo=0');
    						$menu_top = str_replace('<a ', '<a class="header-nav__item" ', $menu_top);
    						echo $menu_top; ?>
    Ответ написан
    Комментировать