S
S
serik2018-09-25 14:31:25
Bitrix24
serik, 2018-09-25 14:31:25

How to fix the error of attaching a file to a Bitrix24 lead?

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
  <title>Заявка принята</title>
    <link rel="stylesheet" href="/wa-content/blog/fonts/font.css">
    <link rel="shortcut icon" href="/favicon.ico"/>
    <script type="text/javascript" src="{$wa_static_url}wa-content/js/jquery-3.2.1.min.js" ></script>
    <script type="text/javascript" src="{$wa_static_url}wa-content/js/common.js"></script>
</head>
<body>
<?php
function show_form()
{
?>

<?
}
function complete_mail() {

    $leadData = $_POST['DATA'];
    // Получаем данные из форм и сохраняем в массив
    $postData = array(
        'Имя:' => $leadData['NAME'],
        'Телефон' => $leadData['PHONE_WORK'],
        'Почта:' => $leadData['EMAIL_WORK'],
        'Комментарий:' => $leadData['COMMENTS'],
    );
        $strPostData = '';
        foreach ($postData as $key => $value)
            $strPostData .= ($strPostData == '' ? '' : ' ').$key.' '.($value)."<br>";
        	$str .= "<p><strong>Заявка:</strong> <br/> ".($strPostData)."</p>\r\n";
    require 'class.phpmailer.php'; //Дополнительный скрипт для отправки файла, можете не открывать, просто положите рядом с index.html и этим файлом.
    $mail = new PHPMailer();
        $mail->From = '[email protected]';      // от кого
        $mail->FromName = 'volt';   // от кого Имя
        $mail->AddAddress('[email protected]', 'Имя'); // кому? Ваша почта, Имя
        $mail->IsHTML(true);        // формат письма HTML
        $mail->Subject = "Новая заявка";  // тема письма
        // если есть файл, то прикрепляем его к письму
        if(isset($_FILES['upl'])) {
                 if($_FILES['upl']['error'] == 0){
                    $mail->AddAttachment($_FILES['upl']['tmp_name'], $_FILES['upl']['name']);
                 }
        }
        $mail->Body = $str;
        // отправляем наше письмо
        if (!$mail->Send()) die ('Mailer Error: '.$mail->ErrorInfo);
}

if (!empty($_POST['submit'])) complete_mail();
else show_form();
?>

<?

define('CRM_HOST', 'voltmarket-oren.bitrix24.ru'); // Домен срм системы
define('CRM_PORT', '443');
define('CRM_PATH', '/crm/configs/import/lead.php');
define('CRM_LOGIN', '');  // логин
define('CRM_PASSWORD', ''); // пароль

/********************************************************************************************/

// POST processing
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    $leadData = $_POST['DATA'];

    $metka = "Заявка".$leadData['NAME']; // Название лида, обязательное условие
    $istochnik = "Веб-сайт"; // Источник
  $assigned = 50; // Ответственный
  $dop_istochnik = $leadData['SOURCE_DESCRIPTION'];
  $comments = "Сообщение: ".$leadData['OTHERS'];
    // получаем данные из полей и задаем название лида
    $postData = array(
        'TITLE' => $metka,
        'NAME' => $leadData['NAME'],
        'PHONE_WORK' =>$leadData['PHONE_WORK'],
        'COMMENTS' => $comments,
        'EMAIL_WORK' => $leadData['EMAIL_WORK'],
    'SOURCE_DESCRIPTION' =>$leadData['SOURCE_DESCRIPTION'],
        'SOURCE_ID' => $istochnik,
        'ASSIGNED_BY_ID' => $assigned,
    );

    // авторизация, проверка логина и пароля
    if (defined('CRM_AUTH'))
    {
        $postData['AUTH'] = CRM_AUTH;
    }
    else
    {
        $postData['LOGIN'] = CRM_LOGIN;
        $postData['PASSWORD'] = CRM_PASSWORD;
    }

    $fp = fsockopen("ssl://".CRM_HOST, CRM_PORT, $errno, $errstr, 30);
    if ($fp)
    {
        // формируем и шифруем строку с данными из формы
        $strPostData = '';
        foreach ($postData as $key => $value)
            $strPostData .= ($strPostData == '' ? '' : '&').$key.'='.urlencode($value);
            $str = "POST ".CRM_PATH." HTTP/1.0\r\n";
            $str .= "Host: ".CRM_HOST."\r\n";
            $str .= "Content-Type: application/x-www-form-urlencoded\r\n";
            $str .= "Content-Length: ".strlen($strPostData)."\r\n";
            $str .= "Connection: close\r\n\r\n";

        $str .= $strPostData;

        // отправляем запрос в срм систему
        fwrite($fp, $str );
        $result = '';
        while (!feof($fp))
        {
            $result .= fgets($fp, 128);
        }
        fclose($fp);

        $response = explode("\r\n\r\n", $result);
        $output = '<pre>'.print_r($response[1], 1).'</pre>';
    }
    else
    {
        echo 'Connection Failed! '.$errstr.' ('.$errno.')';
    }
}
else
{
    $output = '';
}

?>

    <main class="maincontent">

    <article class="content with-sidebar" itemscope itemtype="http://schema.org/WebPage">

    <!-- То, что будет показываться на странице благодарности -->
    <div id="thanks">
        <h1><b>Спасибо, Ваша заявка принята!</b></h1>
        <a onclick="javascript:history.back(); return false;"><b>Вернуться на сайт</b></a>
    </div>
</body>
</html>

This send.php file is triggered when the feedback form is sent, all fields (name/phone/email) are transferred to Bitrix24, but the attached file is not sent.
Please help me overcome this problem

Answer the question

In order to leave comments, you need to log in

1 answer(s)
A
Andrey Nikolaev, 2018-09-25
@gromdron

You do not send files to Bitrix24.

// получаем данные из полей и задаем название лида
    $postData = array(
        'TITLE' => $metka,
        'NAME' => $leadData['NAME'],
        'PHONE_WORK' =>$leadData['PHONE_WORK'],
        'COMMENTS' => $comments,
        'EMAIL_WORK' => $leadData['EMAIL_WORK'],
    'SOURCE_DESCRIPTION' =>$leadData['SOURCE_DESCRIPTION'],
        'SOURCE_ID' => $istochnik,
        'ASSIGNED_BY_ID' => $assigned,
    );

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question