21 июня 2023, 01:17 Вставил в нескольких местах — некуда не отправил- подскажите в моем случае в каком виде и в какое место вставить? Вопросы / Почему не происходит переадресация с форм 15 0
21 июня 2023, 00:26 в какое место mail.php именно в моем случае sendredirect в return $modx->sendRedirect('/?q=good', 0, 'REDIRECT_HEADER', 'HTTP/1.1 301 Moved Permanently'); Вопросы / Почему не происходит переадресация с форм 15 0
20 июня 2023, 23:57 в какое место именно в моем случае в sendredirect Вопросы / Почему не происходит переадресация с форм 15 0
20 июня 2023, 20:43 Можете немного расширенно рассказать куда что вставлять? Вопросы / Почему не происходит переадресация с форм 15 0
20 июня 2023, 20:39 Хорошо я почитаю а куда именно вставлять код в mail.php или куда еще? Вопросы / Почему не происходит переадресация с форм 15 0
20 июня 2023, 19:57 И во всех ли формах на Главной странице mail.php true. Вопросы / Почему не происходит переадресация с форм 15 0
20 июня 2023, 19:57 Хорощо приложу код. ТО есть вы хотите сказать что отправка форм идет нормально?? Не так ли?? Вот прикладываю код mail.php что лежал в корне? То есть код формы обрабатывается. <?php ini_set('error_reporting', E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); /**@var modX $modx */ define('MODX_API_MODE', true); require_once 'index.php'; $modx->getService('error', 'error.modError'); $modx->setLogLevel(modX::LOG_LEVEL_ERROR); $modx->setLogTarget('FILE'); $to = 'webklweb@yandex.ru, sale@subelement.ru, macco@inbox.ru';//почта для заявок $email = 'noreply@site.ru'; $sitename = 'Элемент'; $subject = "Новая заявка с сайта \"$sitename\""; if($_FILES) { $filename = array(); $i = 0; foreach ($_FILES["file"]["error"] as $key => $error) { if ($error == UPLOAD_ERR_OK) { $filename[$i][0] = $_FILES["file"]["tmp_name"][$key]; $filename[$i][1] = $_FILES["file"]["name"][$key]; $i++; } } } function table_tr($title,$value){ if ($value=='') return false; return " <tr> <td width='200' height='40' bgcolor='#eee' style='padding: 5px;'> $title </td> <td width='300' style='padding: 5px;'> $value </td> </tr>"; } function checkbox($array){ $check = implode(", ", $array); $check = substr($check, 1); return $check; } $message="<table border='1'>"; if (isset($_POST['form'])){ $message .= table_tr('Форма',$_POST["form"]); $amo_mess = 'Форма: '.$_POST["form"].';'. PHP_EOL; } if (isset($_POST['name'])){ $message .= table_tr('Имя',$_POST["name"]); $amo_mess .= 'Имя: '.$_POST["name"].'; '. PHP_EOL; } if (isset($_POST['phone'])){ $message .= table_tr('Телефон',$_POST["phone"]); $amo_mess .= 'Телефон: '.$_POST["phone"].'; '. PHP_EOL; } if (isset($_POST['email'])){ $message .= table_tr('Email',$_POST["email"]); $amo_mess .= 'Email: '.$_POST["email"].';'. PHP_EOL; } if (isset($_POST['volume'])){ $message .= table_tr('Объем емкости',$_POST["volume"]); $amo_mess .= 'Объем емкости: '.$_POST["volume"].'; '. PHP_EOL; } if (isset($_POST['scope'])){ $message .= table_tr('Сфера применения',$_POST["scope"]); $amo_mess .= 'Сфера применения: '.$_POST["scope"].'; '. PHP_EOL; } if (isset($_POST['drawing'])){ $message .= table_tr('У меня есть проект/чертеж',$_POST["drawing"]); $amo_mess .= 'У меня есть проект/чертеж: '.$_POST["drawing"].'; '. PHP_EOL; } if (isset($_POST['question'])){ $message .= table_tr('Вопрос',$_POST["question"]); $amo_mess .= 'Вопрос: '.$_POST["question"].'; '. PHP_EOL; } if (isset($_POST['question1'])){ $message .= table_tr('Что планируете постороить',$_POST["question1"]); $amo_mess .= 'Что планируете постороить: '.$_POST["question1"].'; '. PHP_EOL; } if (isset($_POST['question2_1'])){ $message .= table_tr('Ширина',$_POST["question2_1"]); $amo_mess .= 'Ширина: '.$_POST["question2_1"].'; '. PHP_EOL; } if (isset($_POST['question2_2'])){ $message .= table_tr('Длина',$_POST["question2_1"]); $amo_mess .= 'Длина: '.$_POST["question2_2"].'; '. PHP_EOL; } if (isset($_POST['question2_3'])){ $message .= table_tr('Высота',$_POST["question2_3"]); $amo_mess .= 'Высота: '.$_POST["question2_3"].'; '. PHP_EOL; } if (isset($_POST['question3'])){ $message .= table_tr('Готов ли проект, эскиз',$_POST["question3"]); $amo_mess .= 'Готов ли проект, эскиз: '.$_POST["question3"].'; '. PHP_EOL; } if (isset($_POST['question4'])){ $message .= table_tr('Сроки изготовления',$_POST["question4"]); $amo_mess .= 'Сроки изготовления: '.$_POST["question4"].'; '. PHP_EOL; } if (isset($_POST['question5'])){ $message .= table_tr('Адрес',$_POST["question5"]); $amo_mess .= 'Адрес: '.$_POST["question5"].'; '. PHP_EOL; } if (isset($_POST['page'])){ $message .= table_tr('Страница',$_POST["page"]); //$amo_mess = '<p>Страница: '.$_POST["page"].'; </p>'; } if ($_SESSION['site_utm'] && is_array($_SESSION['site_utm'])) { foreach ($_SESSION['site_utm'] as $key => $value) { $message .= table_tr($key, $value); $amo_mess .= ''.$key.': '.$value.'; '. PHP_EOL; } } $message .="</table>"; $responce['status'] = send_mail($to, $message, $email, $filename,$subject); //amo //ПРЕДОПРЕДЕЛЯЕМЫЕ ПЕРЕМЕННЫЕ $responsible_user_id = 2294887; //id ответственного по сделке, контакту, компании $lead_name = 'Заявка с сайта subelement.ru'; //Название добавляемой сделки $lead_status_id = '32775721';//'32681458'; //id этапа продаж, куда помещать сделку $contact_name = urldecode($_POST['name']); //Название добавляемого контакта $contact_phone = urldecode($_POST["phone"]); //Телефон контакта $contact_email = urldecode($_POST['email']); //Емейл контакта //АВТОРИЗАЦИЯ $user=array( 'USER_LOGIN'=>'ay@steelar-zmk.ru', #Ваш логин (электронная почта) 'USER_HASH'=>'b113966441f86ef98df904001ec3aa6629176f85' #Хэш для доступа к API (смотрите в профиле пользователя) ); $subdomain='podarki'; #Формируем ссылку для запроса $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_POST,true); curl_setopt($curl,CURLOPT_POSTFIELDS,http_build_query($user)); 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 $Response=json_decode($out,true); //echo '<b>Авторизация:</b>'; echo '<pre>'; print_r($Response); echo '</pre>'; //ПОЛУЧАЕМ ДАННЫЕ АККАУНТА $link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/accounts/current'; #$subdomain уже объявляли выше $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_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); curl_close($curl); $Response=json_decode($out,true); $account=$Response['response']['account']; //echo '<b>Данные аккаунта:</b>'; echo '<pre>'; print_r($Response); echo '</pre>'; //ПОЛУЧАЕМ СУЩЕСТВУЮЩИЕ ПОЛЯ $amoAllFields = $account['custom_fields']; //Все поля $amoConactsFields = $account['custom_fields']['contacts']; //Поля контактов //echo '<b>Поля из амо:</b>'; echo '<pre>'; print_r($amoConactsFields); echo '</pre>'; //ФОРМИРУЕМ МАССИВ С ЗАПОЛНЕННЫМИ ПОЛЯМИ КОНТАКТА //Стандартные поля амо: $sFields = array_flip(array( 'PHONE', //Телефон. Варианты: WORK, WORKDD, MOB, FAX, HOME, OTHER 'EMAIL' //Email. Варианты: WORK, PRIV, OTHER ) ); //Проставляем id этих полей из базы амо foreach($amoConactsFields as $afield) { if(isset($sFields[$afield['code']])) { $sFields[$afield['code']] = $afield['id']; } } //ДОБАВЛЯЕМ СДЕЛКУ $leads['request']['leads']['add']=array( array( 'name' => $lead_name, 'status_id' => $lead_status_id, //id статуса 'responsible_user_id' => $responsible_user_id, //id ответственного по сделке //'date_create'=>1298904164, //optional //'price'=>300000, //'tags' => 'Important, USA', #Теги //'custom_fields'=>array() 'custom_fields'=>array( array( 'id' => 382333, 'values' => array( array( 'value' => isset($_COOKIE['roistat_visit']) ? $_COOKIE['roistat_visit'] : null, ) ) ) ) ) ); $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); $Response=json_decode($out,true); //echo '<b>Новая сделка:</b>'; echo '<pre>'; print_r($Response); echo '</pre>'; if(is_array($Response['response']['leads']['add'])) foreach($Response['response']['leads']['add'] as $lead) { $lead_id = $lead["id"]; //id новой сделки $responce['lead'] = $lead_id; }; //ДОБАВЛЯЕМ СДЕЛКУ - КОНЕЦ //ДОБАВЛЕНИЕ КОНТАКТА $contact = array( 'name' => $contact_name, 'linked_leads_id' => array($lead_id), //id сделки 'responsible_user_id' => $responsible_user_id, //id ответственного 'custom_fields'=>array( array( 'id' => $sFields['PHONE'], 'values' => array( array( 'value' => $contact_phone, 'enum' => 'MOB' ) ) ), array( 'id' => $sFields['EMAIL'], 'values' => array( array( 'value' => $contact_email, 'enum' => 'WORK' ) ) ) ) ); $set['request']['contacts']['add'][]=$contact; #Формируем ссылку для запроса $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($set)); 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); //CheckCurlResponse($code); $Response=json_decode($out,true); //ДОБАВЛЕНИЕ КОНТАКТА - КОНЕЦ //ДОБАВЛЕНИЕ Примечания $note = array( 'element_id' => $lead_id, 'element_type' => '2', 'text' => $amo_mess, 'note_type' => '4', 'responsible_user_id' => $responsible_user_id, 'created_by' => $responsible_user_id, ); $set['request']['notes']['add'][]=$note; #Формируем ссылку для запроса $link='https://'.$subdomain.'.amocrm.ru/private/api/v2/json/notes/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($set)); 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); //CheckCurlResponse($code); $Response=json_decode($out,true); //ДОБАВЛЕНИЕ Примечания - КОНЕЦ //amo echo json_encode($responce); exit; // Вспомогательная функция для отправки почтового сообщения с вложением function send_mail($to, $body, $email, $filename,$subject) { $boundary = "--".md5(uniqid(time())); // генерируем разделитель $headers = "From: ".$email."\r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .="Content-Type: multipart/mixed; boundary=\"".$boundary."\"\r\n"; $multipart = "--".$boundary."\r\n"; $multipart .= "Content-type: text/html; charset=\"utf-8\"\r\n"; $multipart .= "Content-Transfer-Encoding: quoted-printable\r\n\r\n"; $body = $body."\r\n\r\n"; $multipart .= $body; foreach ($filename as $key => $value) { $fp = fopen($value[0], "r"); $content = fread($fp, filesize($value[0])); fclose($fp); $file .= "--".$boundary."\r\n"; $file .= "Content-Type: application/octet-stream\r\n"; $file .= "Content-Transfer-Encoding: base64\r\n"; $file .= "Content-Disposition: attachment; filename=\"".$value[1]."\"\r\n\r\n"; $file .= chunk_split(base64_encode($content))."\r\n"; } $multipart .= $file."--".$boundary."--\r\n"; $responce['status'] = mail($to, $subject, $multipart, $headers); return $responce['status']; } Ответте на два первых вопроса и как сделать чтобы после отправка форм шел редирект на maccoikt.beget.tech/?q=good, maccoikt.beget.tech/good Вопросы / Почему не происходит переадресация с форм 15 0
20 июня 2023, 15:53 Но там же формы все видны -а раз есть форма то есть сабмит и файлы формы и action- просто можете сказать куда сейчас action идет — своим более опытным глазом — с форм главной страницы? Вопросы / Почему не происходит переадресация с форм 15 0
17 июня 2023, 09:27 в итоге она открылась без сертификата просто rewrite engine on включил — там другая проблема возникла. Вопросы / При переносе 2 0
MiniShop3 - Не выводятся товары дополнительных категорий Это баг, недоработка или так задумано? У меня minishop3 1.12.0-beta1 — тоже не вижу товары, которые в этой категории как в дополнительной категории отмечены, приходится через фро...
MobileDetect 2.0.0-pl функция "планшеты как стандартные браузеры не работает" в 2.1.0-pl баг исправлен
msImportExport не сохраняет родителя по умолчанию Компонент не понимает кирилические домены при загрузку фото. пример: Error download. Url : https://антаресдвери.рф/upload/iblock/a50/a50b2ef45305a3c18f6e298f1e134880.jpg. Message...
Где можно править тексты и заголовки писем? «Управление словарями» находится в панели администратора по пути: меню Система (иконка в виде шестеренки) -> Управление словарями.
mxBoard: канбан-доска для команд, людей и ИИ-агентов в MODX 3 Токены для ИИ-агентов, чтобы они могли работать с доской. Подробнее написал тут Баг проверю и постараюсь исправить.
Плагин EnvBadge: визуальный индикатор окружения в админке MODX3 Лучше автоматический ci/cd настроить и не править прод напрямую. Это самый безопасный вариант. Другое дело, что далеко не каждый владелец сайта и далеко не каждый сайт готовы в авт...
[videoGallery] Видео галерея YouTube, Vimeo Невозможно установить пакет с подписью: videogallery-1.4.0-beta Ошибка установки Error в /core/packages/videogallery-1.4.0-beta/modCategory/7fc931a7772edc9752c16e9c41eb5e52.reso...
Релиз miniShop2 ver. 4.4.1 & 4.4.2 Подскажите пожалуйста, может я что-то не знаю или упустил. Но есть ли решение по глюку с radio? Указываешь свое radio c одинаковым name и в результате при переключении получаешь вс...
Ответте на два первых вопроса и как сделать чтобы после отправка форм шел редирект на maccoikt.beget.tech/?q=good, maccoikt.beget.tech/good