Ответы пользователя по тегу PHP
  • Как в поле формы обратной связи вставить php код?

    @Asokr
    Вам нужно создать новый input в вашей форме.
    <input type="hidden" value="<?php the_permalink(); ?>" name="url">

    И соответственно его обработать, скриптом, который отсылает email...

    Или подставлять код в value текущего инпута, но если этот инпут заполняется пользователем - url сотрется...
    -----------------------
    В данном случае - у вас скорее всего вообще не обрабатывается php код. В этом случае - url нужно забирать у клиента
    <input type="hidden" value="" name="url" class="url">

    document.querySelector('.url').value = location.href;
    Ответ написан
    5 комментариев
  • Не работает прикрепление файла в форме обратной связи. Как исправить?

    @Asokr
    Используйте PHPmailer, так надежней.

    Что-то типа такого
    $data = $_POST;
    
    if ($data['name']) {
        $message  = '<html><body>';
        $message .= "<table>";
        foreach ($data as $key => $value) {
            $message .= "<tr>";
            $message .= "<td>";
            $message .= "<strong> $key: </strong>";
            $message .= "</td>";
            $message .= "<td style='padding-left:12px;'>";
            $message .= " htmlspecialchars(trim($value))";
            $message .= "</td>";
            $message .= "</tr>";
        }
        $message .= "</table><br><br>";
        $message .= "</body></html>";
        
        require dirname(__DIR__).'/Exception.php';
        require dirname(__DIR__).'/PHPmailer.php';
    
        $mail = new PHPMailer\PHPMailer\PHPMailer();
        $mail->setFrom('no-reply@example.com', 'Mail title');
        $mail->addAddress('John@mail.ru', 'John Doe');
        $mail->Subject = $subject;
         // Прикрепление файлов
         if (isset($_FILES['photo']) &&
        $_FILES['photo']['error'] == UPLOAD_ERR_OK) {
    for($i=0;$i<count($_FILES['photo']['tmp_name']);$i++)
    {
        $uploadfile = tempnam(sys_get_temp_dir(), sha1($_FILES['photo']['name'][$i]));
        $filename =$_FILES['photo']['name'][$i];
        if (move_uploaded_file($_FILES['photo']['tmp_name'][$i], $uploadfile)) {
            $mail->addAttachment($uploadfile, $filename);
        }
    }
    }
    
        $mail->msgHTML($message);
      
        
        $r = $mail->send();
    
                
        if ($r) {
            $answer = 'success';
        } else {
            $answer = 'failure';
        }
    
        die($answer);
    }
    Ответ написан
    3 комментария