@Maxval

Как вставить переменную внутрь массива в PHP?

Есть форма на сайте, на нем вводится емайл и забирается в переменную
$email = $_POST['email'];

Вопрос по синтаксису - как вместо example@example.ru вставить эту переменную?
вставляю 'email' => '$email' - не работает, без скобочек - тоже. Как быть?

$data = array(
    'html' => 'Ваша заявка получена',
    'text' => 'Файл во вложении',
    'subject' => 'Спасибо за вашу заявку',
    'from_email' => 'адрес_моей_почты@моя_почта.ru',
    'from_name' => 'Максим',
    'to' => array(		
        array(
            'email' => 'example@example.ru',
            'name' => '', //Lucas
            'type' => 'to'
        )
    ),
  • Вопрос задан
  • 1542 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Maxval Автор вопроса
первый файл, который добавляет в amoCRM клиента и отправляет смску мне, тут все шоколадно работает. Форма работает с этим файлом первой.
После работы этого файла (в конце инклудим ms3.php) и именно в нем уже должен идти процесс отправки на почту письма с аттачем.

<?
//Авторизация
$user=array(
    'USER_LOGIN'=>'адрес_моей_почты', #Ваш логин (электронная почта)
    'USER_HASH'=>'тут_код_доступа' #Хэш для доступа к API (смотрите в профиле пользователя)
);
$subdomain='поддомен_мой'; #Наш аккаунт - поддомен

#Формируем ссылку для запроса
$link='https://'.$subdomain.'.amocrm.ru/private/api/auth.php?type=json';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($user));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE); #Получим HTTP-код ответа сервера
curl_close($curl); #Завершаем сеанс cURL

$code=(int)$code;
$errors=array(
    301=>'Moved permanently',
    400=>'Bad request',
    401=>'Unauthorized',
    403=>'Forbidden',
    404=>'Not found',
    500=>'Internal server error',
    502=>'Bad gateway',
    503=>'Service unavailable'
);

$Response=json_decode($out,true);
$Response=$Response['response'];

// создание сделки
$leads['request']['leads']['add']=array(
    array(
        'name'=>'Новая сделка через форму',
        'status_id'=>111, // Статус ID сделки, посомтреть их можно в запустить их custom_fields.php
        'responsible_user_id'=>222, // менеджер сделки, посомтреть их можно в запустить их custom_fields.php
        'custom_fields'=>array(
            //
        )
    )
);

$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/leads/set';
$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($leads));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);

$code=(int)$code;
$errors=array(
    301=>'Moved permanently',
    400=>'Bad request',
    401=>'Unauthorized',
    403=>'Forbidden',
    404=>'Not found',
    500=>'Internal server error',
    502=>'Bad gateway',
    503=>'Service unavailable'
);
try
{
    #Если код ответа не равен 200 или 204 - возвращаем сообщение об ошибке
    if($code!=200 && $code!=204)
        throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
catch(Exception $E)
{
    die('error: '.$E->getMessage().PHP_EOL.'code error: '.$E->getCode());
}

/**
 * Данные получаем в формате JSON, поэтому, для получения читаемых данных,
 * нам придётся перевести ответ в формат, понятный PHP
 */
$Response=json_decode($out,true);
$Response=$Response['response']['leads']['add'];

foreach($Response as $v)
    if(is_array($v))
        $output.=$v['id'].PHP_EOL;
//записываем id новой сделки
$lead_id = $output;

// создаем задачу
$tasks['request']['tasks']['add']=array(
    #Привязываем к сделке
    array(
        'element_id'=>$lead_id, #ID сделки
        'element_type'=>2, #Показываем, что это - сделка, а не контакт
        'task_type'=>1, #Звонок
        'text'=>'Связаться с клиентом',
        'responsible_user_id'=>192582, // Ответственный за выполнение
        'complete_till'=> time() + (30 * 60) //время завершения в UNIX формате
    ),
);

$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/tasks/set';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($tasks));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);


$email = $_POST['email'];
$phone = $_POST['phone'];

$contacts['request']['contacts']['add']=array(
    array(
        'name'=> 'Новый контакт '.$email . " через форму", // Сюда вписывать имя клиента
        'linked_leads_id'=>array( #Список с айдишниками сделок контакта
            $lead_id // Наша свежая сделка
        ),
        'custom_fields'=>array(
            array(
                #Телефоны
                'id'=>833436, #Уникальный индентификатор заполняемого дополнительного поля
                'values'=>array(
                    array(
                        'value'=> $phone,
                        'enum'=>'MOB' #Мобильный
                    )
                )
            ),
            array(
                #E-mails
                'id'=>833438,
                'values'=>array(
                    array(
                        'value'=> $email,
                        'enum'=>'WORK', #Рабочий
                    )
                )
            )
        )
    )
);

$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/contacts/set';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($contacts));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);

$code=(int)$code;
$errors=array(
    301=>'Moved permanently',
    400=>'Bad request',
    401=>'Unauthorized',
    403=>'Forbidden',
    404=>'Not found',
    500=>'Internal server error',
    502=>'Bad gateway',
    503=>'Service unavailable'
);
try
{
    #Если код ответа не равен 200 или 204 - возвращаем сообщение об ошибке
    if($code!=200 && $code!=204)
        throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
catch(Exception $E)
{
    die('Ошибка: '.$E->getMessage().PHP_EOL.'Код ошибки: '.$E->getCode());
}

/**
 * Данные получаем в формате JSON, поэтому, для получения читаемых данных,
 * нам придётся перевести ответ в формат, понятный PHP
 */
$Response=json_decode($out,true);
$Response=$Response['response']['contacts']['add'];


foreach($Response as $v)
    if(is_array($v))
        $output.=$v['id'].PHP_EOL;
        
	
	
	

    
   include 'ms3.php';
    
 $body=file_get_contents("http://sms.ru/sms/send?api_id=мой_апи_ключ&to=мой_номер_телефона&text=".urlencode(iconv("utf-8","utf-8","Заявка с сайта,$email,$phone")));
 
 
    
     ?>
Ответ написан
<?
require_once 'mandrill-api-php/src/Mandrill.php'; 

//Авторизация
$user=array(
    'USER_LOGIN'=>'адрес_моей_почты',
    'USER_HASH'=>'тут_код_доступа' 
);
$subdomain='поддомен_мой'; #Наш аккаунт - поддомен

$link='https://'.$subdomain.'.amocrm.ru/private/api/auth.php?type=json';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($user));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); 
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE); 
curl_close($curl); 

$code=(int)$code;
$errors=array(
    301=>'Moved permanently',
    400=>'Bad request',
    401=>'Unauthorized',
    403=>'Forbidden',
    404=>'Not found',
    500=>'Internal server error',
    502=>'Bad gateway',
    503=>'Service unavailable'
);

$Response=json_decode($out,true);
$Response=$Response['response'];

// создание сделки
$leads['request']['leads']['add']=array(
    array(
        'name'=>'Новая сделка через форму',
        'status_id'=>111, 
        'responsible_user_id'=>222,
        'custom_fields'=>array(
            //
        )
    )
);

$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/leads/set';
$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($leads));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl);
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);

$code=(int)$code;
$errors=array(
    301=>'Moved permanently',
    400=>'Bad request',
    401=>'Unauthorized',
    403=>'Forbidden',
    404=>'Not found',
    500=>'Internal server error',
    502=>'Bad gateway',
    503=>'Service unavailable'
);
try
{
    if($code!=200 && $code!=204)
        throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
catch(Exception $E)
{
    die('error: '.$E->getMessage().PHP_EOL.'code error: '.$E->getCode());
}

$Response=json_decode($out,true);
$Response=$Response['response']['leads']['add'];

foreach($Response as $v)
    if(is_array($v))
        $output.=$v['id'].PHP_EOL;

$lead_id = $output;


$tasks['request']['tasks']['add']=array(
    #Привязываем к сделке
    array(
        'element_id'=>$lead_id, #ID сделки
        'element_type'=>2, #Показываем, что это - сделка, а не контакт
        'task_type'=>1, #Звонок
        'text'=>'Связаться с клиентом',
        'responsible_user_id'=>192582, // Ответственный за выполнение
        'complete_till'=> time() + (30 * 60) //время завершения в UNIX формате
    ),
);

$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/tasks/set';

$curl=curl_init(); 
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($tasks));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); 
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);


$email = $_POST['email'];
$phone = $_POST['phone'];

$contacts['request']['contacts']['add']=array(
    array(
        'name'=> 'Новый контакт '.$email . " через форму", // Сюда вписывать имя клиента
        'linked_leads_id'=>array( #Список с айдишниками сделок контакта
            $lead_id // Наша свежая сделка
        ),
        'custom_fields'=>array(
            array(
                #Телефоны
                'id'=>833436, #Уникальный индентификатор заполняемого дополнительного поля
                'values'=>array(
                    array(
                        'value'=> $phone,
                        'enum'=>'MOB' #Мобильный
                    )
                )
            ),
            array(
                #E-mails
                'id'=>833438,
                'values'=>array(
                    array(
                        'value'=> $email,
                        'enum'=>'WORK', #Рабочий
                    )
                )
            )
        )
    )
);

$link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/contacts/set';

$curl=curl_init(); #Сохраняем дескриптор сеанса cURL
#Устанавливаем необходимые опции для сеанса cURL
curl_setopt($curl,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl,CURLOPT_USERAGENT,'amoCRM-API-client/1.0');
curl_setopt($curl,CURLOPT_URL,$link);
curl_setopt($curl,CURLOPT_CUSTOMREQUEST,'POST');
curl_setopt($curl,CURLOPT_POSTFIELDS,json_encode($contacts));
curl_setopt($curl,CURLOPT_HTTPHEADER,array('Content-Type: application/json'));
curl_setopt($curl,CURLOPT_HEADER,false);
curl_setopt($curl,CURLOPT_COOKIEFILE,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_COOKIEJAR,dirname(__FILE__).'/cookie.txt'); #PHP>5.3.6 dirname(__FILE__) -> __DIR__
curl_setopt($curl,CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($curl,CURLOPT_SSL_VERIFYHOST,0);

$out=curl_exec($curl); #Инициируем запрос к API и сохраняем ответ в переменную
$code=curl_getinfo($curl,CURLINFO_HTTP_CODE);

$code=(int)$code;
$errors=array(
    301=>'Moved permanently',
    400=>'Bad request',
    401=>'Unauthorized',
    403=>'Forbidden',
    404=>'Not found',
    500=>'Internal server error',
    502=>'Bad gateway',
    503=>'Service unavailable'
);
try
{
    if($code!=200 && $code!=204)
        throw new Exception(isset($errors[$code]) ? $errors[$code] : 'Undescribed error',$code);
}
catch(Exception $E)
{
    die('Ошибка: '.$E->getMessage().PHP_EOL.'Код ошибки: '.$E->getCode());
}

$Response=json_decode($out,true);
$Response=$Response['response']['contacts']['add'];


foreach($Response as $v)
    if(is_array($v))
        $output.=$v['id'].PHP_EOL;
        

$mail = new Mandrill('мой_апи_ключ');

/* Блок динамического контента */
$tpl_con = array(
    array(
        'name' => 'my-label',
        'content' => '<h2>Моя рассылка</h2>'
    )
);

$data = array(
    'html' => 'Ваша заявка получена',
    'text' => 'Документ во вложении',
    'subject' => 'Спасибо за вашу заявку',
    'from_email' => 'моя почта',
    'from_name' => 'Максим',
    'to' => array(		
        array(
            'email' =>$email, //именно сюда и нужно вписать переменную, но если используем include, то она как будто не передается сюда
            'name' => '', //Lucas
            'type' => 'to'
        )
    ),
    'global_merge_vars' => array(
        array(
            'name' => 'NAME',
            'content' => 'Lucas'
        )
    ),
    'merge_vars' => array(
        array(
            'rcpt' => 'example@gmail.com',
            'vars' => array(
                array(
                    'name' => 'NAME',
                    'content' => 'Lucas'
                )
            )
        )
    ),
    'attachments' => array(
        array(
             'type' => 'application/msword',
                'name' => 'brif.doc',
                'content' => base64_encode(file_get_contents('brif.doc'))
        )
    ),
    
   /* 
   'images' => array(
        array(
            'type' => 'image/png',
            'name' => 'phone.png',
            'content' => base64_encode(file_get_contents('phone.png'))
        )
    ),
    
    */
    
    'subaccount' => 'мой_субаккаунт'
);

try {
    /* Отправка обычного письма */
    $result = $mail->messages->send($data);
    print_r($result);
    /* Отправка письма с использованием шаблона */
   // $result = $mail->messages->sendTemplate('example', $tpl_con, $data);
  //  print_r($result);
} catch(Mandrill_Error $error) {
    echo 'Error: ' . get_class($error) . ' - ' . $error->getMessage();
}
    
 $body=file_get_contents("http://sms.ru/sms/send?api_id=мой_апи_ключ&to=мой_номер_телефона&text=".urlencode(iconv("utf-8","utf-8","Заявка с сайта,$email,$phone")));
 ?>

Что мешает сделать так?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы