- Added Predis library for Redis connection (no PHP extension required) - Server-side SMS code generation and storage in Redis - Rate limiting and brute-force protection - Integration with n8n webhook for SMS sending - Environment variables moved to .env file - Fixed policy verification endpoint - Added file-based fallback if Redis unavailable
357 lines
18 KiB
PHP
357 lines
18 KiB
PHP
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<title>Site name</title>
|
||
<meta name="description" content="">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||
|
||
<link rel="stylesheet" href="css/main.css">
|
||
|
||
<link rel="stylesheet" href="libs/datepicker-master/datepicker.min.css">
|
||
<link rel="stylesheet" href="libs/intl-tel-input-master/build/css/intlTelInput.min.css">
|
||
<link rel="stylesheet" href="libs/fancybox/jquery.fancybox.min.css">
|
||
|
||
|
||
|
||
</head>
|
||
|
||
<body>
|
||
|
||
<div class="container">
|
||
<div class="form">
|
||
|
||
<form >
|
||
<!-- REF -->
|
||
<input type="hidden" name="cf_1834" value="<?php echo $_SERVER['HTTP_REFERER'];?>">
|
||
<!-- IP -->
|
||
<input type="hidden" name="cf_1590" value="<?php echo $_SERVER['REMOTE_ADDR'];?>">
|
||
<?php
|
||
$curl = curl_init();
|
||
curl_setopt_array($curl, array(
|
||
CURLOPT_URL => 'http://ip-api.com/json/' . $_SERVER['REMOTE_ADDR'] . '?lang=ru',
|
||
CURLOPT_RETURNTRANSFER => true,
|
||
CURLOPT_ENCODING => '',
|
||
CURLOPT_MAXREDIRS => 10,
|
||
CURLOPT_TIMEOUT => 0,
|
||
CURLOPT_FOLLOWLOCATION => true,
|
||
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
|
||
CURLOPT_CUSTOMREQUEST => 'GET',
|
||
));
|
||
$response = curl_exec($curl);
|
||
$response_array = json_decode($response, true);
|
||
curl_close($curl);
|
||
?>
|
||
<!-- Регион -->
|
||
<input type="hidden" name="cf_1592" value="<?php echo $response_array['regionName']; ?>">
|
||
<input type="hidden" name="cf_1187" value="платные образовательные услуги">
|
||
<h3 class="form__title">
|
||
Для получения помощи, Вам необходимо заполнить представленную форму. Если все будет заполнено верно, Вам на
|
||
почту придет письмо с подтверждением регистрации обращения и необходимыми инструкциями. <br>
|
||
<strong> Помощь по взысканию денежных средств оказывается бесплатно.</strong>
|
||
</h3>
|
||
|
||
<div class="form-step active" data-step="1">
|
||
<div class="form-item">
|
||
<span class="form-item__label">Фамилия</span>
|
||
<input type="text" class="form-input js-text-field" name="lastname" placeholder="Иванов">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item" data-numwarn="Введите имя">
|
||
<span class="form-item__label">Имя</span>
|
||
<input type="text" class="form-input js-text-field" name="firstname" placeholder="Иван">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Отчество (при наличии)</span>
|
||
<input type="text" class="form-input js-text-field" name="patronymic" placeholder="Васильевич">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Адрес регистрации, включая индекс</span>
|
||
<textarea name="mailingstreet" class="form-input form-input--textarea js-adres" id="" cols="30" rows="10"
|
||
placeholder="112354, Россия, Нью-Васюки, ул. Победы, д. 5, кв. 11"></textarea>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Дата рождения</span>
|
||
<input type="text" class="form-input form-input--date js-date-mask" name="birthday" placeholder="__-__-____">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Место рождения (дословно как в паспорте)</span>
|
||
<input type="text" class="form-input js-text-field js-adres" name="born_adres" placeholder="гор. Сыктывкар">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Ваш ИНН. </span>
|
||
<span class="form-item__sublabel">Узнать свой ИНН вы можете <a href="https://service.nalog.ru/static/personal-data.html?from=/inn.do&svc=inn" target="_blank">здесь</a> </span>
|
||
<input type="text" class="form-input js-inn-mask" name="inn" placeholder="721223421129">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Реквизиты для получения возмещения</span>
|
||
<textarea name="requisite" class="form-input form-input--textarea" id="" cols="30" rows="10"
|
||
placeholder="Расчетный счет: 00000000000000000000 в ПАО Сбербанк России, Кор. счет: 00000000000000000000 БИК: 044525225"></textarea>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="form-step " data-step="2">
|
||
<div class="form-step__info">
|
||
С кем заключен договор
|
||
</div>
|
||
<div class="autocomplete" data-groupename="contr">
|
||
<div class="form-item">
|
||
<span class="form-item__label">Введите ИНН Контрагента или его наименование</span>
|
||
<input type="text" class="form-input js-text-field contr_name" name="contr_name" placeholder="">
|
||
<span class="form-item__warning"></span>
|
||
<div class="form-item__dropdown"></div>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label"></span>
|
||
<input type="number" class="form-input js-text-field contr_inn js-inn-mask2" name="contr_inn" placeholder="7836459878">
|
||
<span class="form-item__warning"></span>
|
||
<div class="form-item__dropdown"></div>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label"></span>
|
||
<textarea class="form-input form-input--textarea contr_adres" name="contr_adres" id="" cols="30" rows="10"
|
||
placeholder="112354, Россия, Нью-Васюки, ул. Победы, д. 5, кв. 11"></textarea>
|
||
<span class="form-item__warning"></span>
|
||
<div class="form-item__dropdown"></div>
|
||
</div>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">E-mail контрагента</span>
|
||
<input type="email" class="form-input js-text-field" name="contr_email" placeholder="mail@mail.ru" data-warmes="Укажите, пожалуйста, корректный email">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Контактный телефон контрагента</span>
|
||
<input type="text" class="form-input js-phone-mask" name="contr_phone" placeholder="">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Сайт контрагента </span>
|
||
<input type="text" class="form-input js-phone" name="contr_website" placeholder="http://site.com">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
</div>
|
||
<div class="form-step " data-step="3">
|
||
<div class="form-step__info">
|
||
Сведения о договоре
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Дата заключения договора</span>
|
||
<input type="text" class="form-input form-input--date js-date-mask" name="contract_date" placeholder="__-__-____">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Договор</span>
|
||
<input type="file" name="contract_file" id="file1" multiple class="js-attach" data-crm_name="file_15_1" data-doc_name="Договор"><label for="file1">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Оплачено за обучение, рублей.</span>
|
||
<!-- <span class="form-item__sublabel">113222.45</span> -->
|
||
<input type="text" class="form-input js-payed-mask " name="payed" placeholder="" data-inputmask="'alias': 'decimal', 'groupSeparator': '', 'autoGroup': true, 'digits': 2, 'digitsOptional': false,'placeholder': '0'" style="text-align: right;">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Подтверждение оплаты</span>
|
||
<input type="file" name="pay_confirm" id="file2" multiple class="js-attach" data-crm_name="file_15_2" ><label for="file2">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Образовательная программа</span>
|
||
<input type="text" class="form-input js-text-field" name="programm" placeholder="Дизайнер водосточных труб">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
|
||
<div class="form-item">
|
||
<span class="form-item__label">Программа обучения</span>
|
||
<input type="file" name="programm_file" id="file3" multiple class="notvalidate js-attach" data-crm_name="file_15_3" ><label for="file3">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Прогресс обучения, в %</span>
|
||
<input type="text" class="form-input js-progress-mask" name="study_progress" placeholder="__">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Скриншот прогресса обучения/личного кабинета</span>
|
||
<input type="file" name="screen" id="file4" multiple class="js-attach" data-crm_name="file_15_4"><label for="file4">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
</div>
|
||
<div class="form-step " data-step="4">
|
||
<div class="form-step__info">
|
||
Претензионный порядок
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Самостоятельно соблюден претензионный порядок</span>
|
||
<div class="select-wrap">
|
||
<select name="claim" class="form-input">
|
||
<option value="Да" data-val="1">Да</option>
|
||
<option value="Нет" data-val="0">Нет</option>
|
||
</select>
|
||
</div>
|
||
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Дата направления претензии</span>
|
||
<input type="text" class="form-input form-input--date js-date-mask" name="claim_date" placeholder="__-__-____">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Претензия и документы подтверждающие направление претензии</span>
|
||
<input type="file" name="claim_file" id="file5" multiple class="js-attach" data-crm_name="file_15_5" ><label for="file5">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Вернули в претензионном порядке</span>
|
||
<!-- <span class="form-item__sublabel">1000.94</span> -->
|
||
<input type="text" class="form-input js-payed-mask " name="claym_return" placeholder="" data-inputmask="'alias': 'decimal', 'groupSeparator': '', 'autoGroup': true, 'digits': 2, 'digitsOptional': false,'placeholder': '0'" style="text-align: right;">
|
||
<!--<input type="text" class="form-input js-text-field js-payed-mask" name="claym_return" placeholder="1000.94"> -->
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Ответ на претензию </span>
|
||
<input type="file" name="claim_file_respons" id="file6" multiple class="notvalidate js-attach" data-crm_name="file_15_6" ><label for="file6">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Документы, подтверждающие возврат средств контрагентом</span>
|
||
<input type="file" name="pay_return" id="file7" multiple class="notvalidate js-attach" data-crm_name="file_15_7"><label for="file7">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
</div>
|
||
<div class="form-step" data-step="5">
|
||
<div class="form-step__info">
|
||
Дополнительная информация
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Ваш номер телефона</span>
|
||
<span class="form-item__sublabel">на него поступит смс с проверочным кодом</span>
|
||
<input type="text" class="form-input js-phone-mask" name="phonenumber" placeholder="">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
|
||
<div class="form-item">
|
||
<span class="form-item__label">Причина обращения</span>
|
||
<div class="select-wrap">
|
||
<select name="cf_1786" class="form-input">
|
||
<option value="">Не выбрано</option>
|
||
<option value="Плохое качество">Плохое качество</option>
|
||
<option value="Другая причина">Другая причина</option>
|
||
</select>
|
||
</div>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Опишите подробно причину обращения</span>
|
||
<textarea name="message" class="form-input form-input--textarea" id="" cols="30" rows="10"
|
||
placeholder=""></textarea>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Прочие документы</span>
|
||
<input type="file" name="other_docs" id="file8" multiple class="notvalidate js-attach" data-crm_name="file_15_8"><label for="file8">Загрузить файлы</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
<div class="form-item">
|
||
<span class="form-item__label">Ваша электронная почта</span>
|
||
<input type="email" name="email" class="form-input" data-warmes="Укажите, пожалуйста, корректный email">
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
|
||
|
||
<div class="modal" id="confirm_sms" style="display:none;">
|
||
<div class="form-item sms-checking">
|
||
<span class="form-item__label">Код подтверждения</span>
|
||
<input type="text" class="form-input js-code-mask notvalidate" name="code">
|
||
<div class="sms-checking sms-action">
|
||
<button class="btn js-accept-sms" style="display:none; ">Подтвердить</button>
|
||
<button class="btn js-send-sms" style="margin-top:20px; display:none; ">Отправить повторно</button>
|
||
<div class="sms-countdown" style="display:none;">
|
||
Не пришло смс? Повторная отправка через: <span class="time"></span>
|
||
</div>
|
||
</div>
|
||
<span class="form-item__warning"></span>
|
||
<span class="form-item__warning js-code-warning"></span>
|
||
</div>
|
||
<div class="loader-wrap d-none">
|
||
<div class="loader"></div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="form-item">
|
||
<div class="checkbox-item">
|
||
<input type="checkbox" class="form-checkbox" id="agree" name="agree" val="1"><label for="agree">Я ознакомлен(а) и согласен(на) с <a href="https://clientright.ru/person" style="" target="_blank">политикой </a>обработки персональных данных</label>
|
||
<span class="form-item__warning"></span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="form__warning" style="display: none ">Пожалуйста, заполните все обязательные поля</div>
|
||
<div class="form__action">
|
||
<div class="progress-row">
|
||
<div class="span-progress">
|
||
<span class="current">1</span>
|
||
/
|
||
<span class="total">5</span>
|
||
</div>
|
||
</div>
|
||
<a href="" class="btn btn--arrow btn--prev js-btn-prev" style="display: none;">
|
||
<span class="icon">
|
||
|
||
</span>
|
||
назад
|
||
</a>
|
||
<a href="" class="btn btn--arrow btn--next js-btn-next" >вперед
|
||
<span class="icon">
|
||
|
||
</span>
|
||
</a>
|
||
<button type="submit" class="btn btn--arrow btn--submit d-none">
|
||
Подать обращение
|
||
<span class="icon">
|
||
|
||
</span>
|
||
</button>
|
||
</div>
|
||
<div class="form-note">
|
||
Нажимая на кнопку, вы даете согласие на <a href="https://clientright.ru/person" style="" target="_blank">обработку персональных данных</a> и соглашаетесь c <a href="https://clientright.ru/direct" style="" target="_blank">Положением</a> о юридической поддержке потребителей.
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="modal" id="success_modal" style="display:none">
|
||
<h4 class="title">Поздравляем!</h4>
|
||
<p>
|
||
Ваше обращение направлено в Клиентправ. В ближайшее время на указанную Вами электронную почту поступит письмо, подтверждающее регистрацию вашего обращения.
|
||
</p>
|
||
</div>
|
||
|
||
<script src="libs/jquery/jquery-3.4.1.min.js"></script>
|
||
<script src="libs/inputmask/jquery.inputmask.min.js"></script>
|
||
<script src="libs/datepicker-master/datepicker.min.js"></script>
|
||
<script src="libs/intl-tel-input-master/build/js/intlTelInput.js"></script>
|
||
<script src="libs/fancybox/jquery.fancybox.min.js"></script>
|
||
|
||
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/suggestions-jquery@20.2.1/dist/js/jquery.suggestions.min.js"></script>
|
||
|
||
<script src="js/common.js"></script>
|
||
<style>
|
||
.t-input-block{
|
||
overflow:visible !important;
|
||
}
|
||
</style>
|
||
|
||
</body>
|
||
|
||
</html>
|