M
M
Maxval2015-06-28 17:48:25
PHP
Maxval, 2015-06-28 17:48:25

How to insert a variable inside an array in PHP?

There is a form on the site, an email is entered on it and it is taken into a variable. Question on syntax - how to insert this variable instead of [email protected]? I insert 'email' => '$email' - it doesn't work, without brackets - too. How to be?
$email = $_POST['email'];

$data = array(
    'html' => 'Ваша заявка получена',
    'text' => 'Файл во вложении',
    'subject' => 'Спасибо за вашу заявку',
    'from_email' => 'адрес_моей_почты@моя_почта.ru',
    'from_name' => 'Максим',
    'to' => array(		
        array(
            'email' => '[email protected]',
            'name' => '', //Lucas
            'type' => 'to'
        )
    ),

Answer the question

In order to leave comments, you need to log in

2 answer(s)
M
Maxval, 2015-06-29
@Maxval

the first file that adds a client to amoCRM and sends a text message to me, everything works fine here. The form works with this file first.
After the work of this file (at the end we include ms3.php) and it is in it that the process of sending a letter with an attachment to the mail should already be going on.

<?
//Авторизация
$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")));
 
 
    
     ?>

S
Svyatoslav Nemato, 2015-06-30
@makklovskiy

<?
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' => '[email protected]',
            '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")));
 ?>

What's stopping you from doing so?

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question