Генерация PDF из формы FormIt + Генерация PDF из любых данных по кнопке (без FormIt) в MODX Revo
На modx.pro уже есть статья от Володи по генерации PDF.
Ниже хочу предложить альтернативный вариант формирования PDF файла из данных форм FormIt с использованием шаблонизатора Fenom и бесплатного компонента PDFresource
Итак, приступим:
Код вызова AjaxForm + FormIt:
Здесь добавлен hook pdf и 3 дополнительных параметра:
Содержимое сниппета pdf, который используется в качестве hook для FormIt:
Содержимое сниппета PdfCreate:
Содержимое чанка tpl.Email:
Содержимое чанка tpl.PDF:
В папке assets/pdf будут формироваться PDF файлы, ссылки на которые будут отправляться в письме.
=======================
Генерация PDF из любых данных с помощью PDFresource
К примеру, напишем в коде страницы (шаблон / чанк / содержимое и тд.) 2 ссылки:
Пишем AJAX вызов:
Создаем страницу с пустым шаблоном и отключенным визуальным редактором, в псевдоним пишем pdf, В название – всё, что захочется. Можно дополнительно заморозить URI, туда пишем pdf. В содержимое:
Содержимое сниппета prePdfCreate:
Сниппет PdfCreate есть выше, также, как и чанк tpl.PDF.
Готово! На странице жмём по ссылке, формируется PDF и открывается в новом окне. Для тех, у кого не сработает открытие в новом окне (блокировщик и другие штуки), появится ссылка на PDF файл.
p.s. Если добавить в ссылку на PDF файл атрибут download, то при клике будет происходить скачивание файла.
===================
UPD. Дополнительный скрипт для очистки папки с PDF файлами. Инструкция по настройке cron будет излишней, я думаю:
Ниже хочу предложить альтернативный вариант формирования PDF файла из данных форм FormIt с использованием шаблонизатора Fenom и бесплатного компонента PDFresource
Итак, приступим:
Код вызова AjaxForm + FormIt:
Здесь добавлен hook pdf и 3 дополнительных параметра:
- &pdfTpl – чанк шаблона будущего PDF файла
- &author – Автор PDF
- &title – Заголовок PDF
[[!AjaxForm?
&snippet=`FormIt`
&form=`tpl.form`
&emailTpl=`tpl.email`
&pdfTpl=`tpl.PDF`
&hooks=`pdf,email`
&author=`Автор PDF`
&title=`Заголовок PDF`
&emailSubject=`Тема письма`
&emailTo=`[[++emailsender]]`
&emailFrom=`[[++emailsender]]`
&validate=`email:required`
&validationErrorMessage=`Ошибка в форме`
&successMessage=`Сообщение отправлено`
]]
Содержимое сниппета pdf, который используется в качестве hook для FormIt:
<?php
// для использования в чанке формирования PDF шаблонизатора Fenom, подключаем pdoFetch
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$author = $modx->getOption('author', $formit->config, 'Автор', true);
$title = $modx->getOption('title', $formit->config, 'Заголовок PDF', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$hook->setValue('pdf_link', $modx->runSnippet('PdfCreate', $config));
return true;
Содержимое сниппета PdfCreate:
<?php
$date = date('Y-m-d_H-i-s', time()) . '_' .rand(1, 100);
$corePath = $modx->getOption('pdfresource.core_path', null, $modx->getOption('core_path') . 'components/pdfresource/');
$pdfresource = $modx->getService('pdfresource', 'PDFResource', $corePath . 'model/pdfresource/', array(
'core_path' => $corePath
));
$content = $modx->getOption('content', $scriptProperties, '', true);
$title = $modx->getOption('title', $scriptProperties, '', true);
$author = $modx->getOption('author', $scriptProperties, '', true);
$aliasPath = MODX_ASSETS_PATH . 'pdf/';
$site_url = $modx->getOption('site_url');
// настройки PDFResource (подробнее почитать здесь: http://jako.github.io/PDFResource/usage/)
$pdfresource->initPDF(array(
'mode' => 'utf-8',
'format' => 'A4',
'defaultFontSize' => intval(8),
'defaultFont' => '',
'mgl' => intval(10), // margin left
'mgr' => intval(10), // margin right
'mgt' => intval(7), // margin top
'mgb' => intval(7), // margin bottom
'mgh' => intval(10), // margin header
'mgf' => intval(10), // margin footer
'orientation' => 'P', // ориентация PDF
'customFonts' => '[]',
));
$pdfresource->pdf->SetTitle($title);
$pdfresource->pdf->SetAuthor($author);
$pdfresource->pdf->SetCreator($modx->getOption('site_url'));
$pdfresource->pdf->WriteHTML($content, 2);
$file_name = $date;
$pdfresource->pdf->Output($aliasPath . $file_name . '.pdf', 'F');
return $site_url . ltrim($modx->getOption('assets_url'), '/') . 'pdf/' .$file_name. '.pdf';
Содержимое чанка tpl.Email:
{if $name?}<p>Имя: {$name}</p>{/if}
{if $email?}<p>Email: {$email}</p>{/if}
{if $message?}<p>Сообщение: {$message}</p>{/if}
{if $pdf_link?}<p><a href="{$pdf_link}">Ссылка на PDF</a></p>{/if}
Содержимое чанка tpl.PDF:
{if $name?}<p>Имя: {$name}</p>{/if}
{if $email?}<p>Email: {$email}</p>{/if}
{if $message?}<p>Сообщение: {$message}</p>{/if}
В папке assets/pdf будут формироваться PDF файлы, ссылки на которые будут отправляться в письме.
=======================
Генерация PDF из любых данных с помощью PDFresource
К примеру, напишем в коде страницы (шаблон / чанк / содержимое и тд.) 2 ссылки:
- с data атрибутами (которые будем использовать в формировании PDF)
- для ссылки на готовый PDF
<a href="#" class="createPdf"
data-name="Имя"
data-email="mail@mail.ru"
data-message="Сообщение в PDF">Создать PDF</a>
<a href="#" class="linkPdf" style="display:none;">Ссылка на PDF</a>
Пишем AJAX вызов:
$('.createPdf').click(function(e){
e.preventDefault();
$.ajaxSetup({ async: false});
$.ajax({
type: 'POST',
url: 'pdf',
data: {
'name' : $(this).data('name'),
'email' : $(this).data('email'),
'message' : $(this).data('message')
},
success: function(link){
$('a.linkPdf').attr('href', link).fadeIn();
window.open(link);
}
});
});
Создаем страницу с пустым шаблоном и отключенным визуальным редактором, в псевдоним пишем pdf, В название – всё, что захочется. Можно дополнительно заморозить URI, туда пишем pdf. В содержимое:
[[!prePdfCreate?
&pdfTpl=`tpl.PDF`
&author=`Автор PDF`
&title=`Заголовок PDF`
]]
Содержимое сниппета prePdfCreate:
<?php
if (!$_POST['name']) return;
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $scriptProperties, '', true);
$author = $modx->getOption('author', $scriptProperties, '', true);
$title = $modx->getOption('title', $scriptProperties, '', true);
$content = $pdo->getChunk($pdfTpl, $_POST);
$config = array();
$config = array_merge($config, $_POST, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
return $modx->runSnippet('PdfCreate', $config);
Сниппет PdfCreate есть выше, также, как и чанк tpl.PDF.
Готово! На странице жмём по ссылке, формируется PDF и открывается в новом окне. Для тех, у кого не сработает открытие в новом окне (блокировщик и другие штуки), появится ссылка на PDF файл.
p.s. Если добавить в ссылку на PDF файл атрибут download, то при клике будет происходить скачивание файла.
===================
UPD. Дополнительный скрипт для очистки папки с PDF файлами. Инструкция по настройке cron будет излишней, я думаю:
<?php
$files = glob(MODX_ASSETS_PATH.'pdf/*'); // получаем все файлы в папке
foreach($files as $file){
if(is_file($file))
unlink($file); // удаляем файл
}
Комментарии: 34
Можно еще добавить скрипт для Cron, который будет удалять содержимое папки pdf, дабы не копить тонны мусора. И будет полностью готовое решение :)
Недавно переносил скромную визитку на другой хостинг и долго не мог понять, почему папка с сайтом 8гб весит. Оказалось, что похожий хук хранил прикрепленные к форме фотографии с самого создания сайта. В итоге 6 гигабайт архивных файлов, никому не нужных.
Недавно переносил скромную визитку на другой хостинг и долго не мог понять, почему папка с сайтом 8гб весит. Оказалось, что похожий хук хранил прикрепленные к форме фотографии с самого создания сайта. В итоге 6 гигабайт архивных файлов, никому не нужных.
Спасибо! Добавил скрипт очистки папки.
А можно как-то приложить сам файл, а не ссылку на него?
Здесь есть решение, как прикреплять к письму файлы: https://modx.pro/help/12408/#comment-81924
не хочет даже в папку ничего сохранять.
взял код из поста, только добавил форму такого плана
взял код из поста, только добавил форму такого плана
<form id="contactForm" method="post" action="[[~[[*id]]]]">
<strong>Заполните, пожалуйста, поля и нажмите кнопку "отправить".</strong>
<div>
<label for="name">Имя </label><em>(обязательно, минимум 2 символа)</em><br />
<input id="name" name="name" size="30" minlength="2" value="[[!+fi.name]]" />
<label for="name">
[[!+fi.error.name]]
</label>
</div>
<div>
<label for="email">E-Mail </label><em>(обязательно)</em><br />
<input id="email" name="email" size="30" value="[[!+fi.email]]" />
<label for="email">
<span class="error">[[!+fi.error.email]]</span>
</label>
</div>
<div>
<label for="message">Примечание </label><em>(обязательно)</em><br />
<textarea id="message" name="message" cols="70" rows="7">[[!+fi.message]]</textarea>
<label for="message">
<span class="error">[[!+fi.error.message]]</span>
</label>
</div>
<div>
<input name="submit" type="submit" value="Отправить"/>
</div>
</form>
и почту для отправки в явном виде указал
Видимо что-то делаешь не так. А что не так – нужно смотреть вызов и тд.
Так весь вызов на сайте) я ничего не менял. Ладно, я понял, посмотрю на ajaxform.
А с самим formIt можно по аналогии сделать, без ajax? Там у меня точно рабочий вариант формы, который уходит на почту, только в pdf не сохраняет.
А с самим formIt можно по аналогии сделать, без ajax? Там у меня точно рабочий вариант формы, который уходит на почту, только в pdf не сохраняет.
без ajaxForm не проверял, по идее должно работать, ajaxForm – как обертка
да, на рабочей форме все заработало, спасибо.
только пришлось в чанке tpl.PDF
только пришлось в чанке tpl.PDF
{if $name?}<p>Имя: {$name}</p>{/if}
заменить на<p>Имя: [[+name]]</p>
и остальные аналогично, иначе пустой pdf генерился
FormIt не так давно стал поддерживать pdoTools, а соответственно и fenom. Возможно, FormIt не последней версии.
проверил — написано что последняя 3.0.4-pl, от 4 ноября.
а для Fenom нужен только pdoTools?
а для Fenom нужен только pdoTools?
разобрался, Fenom нужно было отдельно включить в настройках
еще вопрос по генерации pdf возник — а как сделать нужное форматирование?
по умолчанию он заголовки понимает, жирный там, а свои стили я и в tplCSS и свой шаблон создавал и указывал его при вызове FormIT и в шаблоне tpl.PDF прописывал — ноль результат, такое ощущение что где-то есть еще параметр разрешающий использовать свой CSS
по умолчанию он заголовки понимает, жирный там, а свои стили я и в tplCSS и свой шаблон создавал и указывал его при вызове FormIT и в шаблоне tpl.PDF прописывал — ноль результат, такое ощущение что где-то есть еще параметр разрешающий использовать свой CSS
В документации есть про стили: http://jako.github.io/PDFResource/usage/
да, я ж оттуда и взял tplCSS, но чтобы там не прописывал — ничего не подтягивается, там собственно по дефолту уже есть h1 и даже он не работает.
в итоге заработало только принудительное прописывание стилей каждому элементу.
в итоге заработало только принудительное прописывание стилей каждому элементу.
Подскажите, вы нашли решение данной проблемы? Столкнулся с ней сейчас и не могу понять почему CSS не цепляется.
Нет, дохлый номер. Я в итоге забил.
Я вчера сам разобрался.
В сниппет PrePdfCreate добавляем строчку:
При вызове сниппета на странице pdf пишем:
В сниппет PrePdfCreate добавляем строчку:
$css = $pdo->getChunk($cssTpl);
И там же в переменную config пишем:$config = array_merge($config, $_POST, array(
'content' => $content,
'author' => $author,
'title' => $title,
'css' => $css,
));
В сниппет PdfCreate пишем:$css = $modx->getOption('css', $scriptProperties, '', true);
И добавляем такую строчку:$pdfresource->pdf->WriteHTML($css, 1);
С местами, куда добавлять строчку по коду разберетесь.При вызове сниппета на странице pdf пишем:
[[!prePdfCreate?
&pdfTpl=`tpl.PDF`
&cssTpl=`tplCSS`
&author=`Автор PDF`
&title=`Заголовок PDF`
]]
Все изменения сделал, pdf формируется. Но, если
— вызвать через Ajax или Formit — css не подключается, заполненные данные формы передаются в pdf — файл.
— Если делать по пункту «Генерация PDF из любых данных с помощью PDFresource» через «AJAX вызов», то css — подключается, но данные формы не передаются.
Подскажите куда копать?
— вызвать через Ajax или Formit — css не подключается, заполненные данные формы передаются в pdf — файл.
— Если делать по пункту «Генерация PDF из любых данных с помощью PDFresource» через «AJAX вызов», то css — подключается, но данные формы не передаются.
Подскажите куда копать?
Понимаю, что сто лет прошло, но может вы как-то решили эту проблему?
Тоже не подтягивается CSS после манипуляций выше. Делаю через Ajax + Formit. Сам PDF формируется и ссылка на него в письме приходит.
Тоже не подтягивается CSS после манипуляций выше. Делаю через Ajax + Formit. Сам PDF формируется и ссылка на него в письме приходит.
а вот это пробовали github.com/dompdf/dompdf/
Нет, посмотрю, как можно прикрутить.
А как заполнить этот код, если информация, которая должна попасть в переменные содержится в выборке pdoResources?
<a href="#" class="createPdf"
data-name="Имя"
data-email="mail@mail.ru"
data-message="Сообщение в PDF">Создать PDF</a>
<a href="#" class="linkPdf" style="display:none;">Ссылка на PDF</a>
У меня вот какой вопрос если в PDF упаковывать значение из radio пример:
<input name="question_1[]" type="hidden" value="">
<input name="question_1[]" type="radio" value="1">
<input name="question_1[]" type="radio" value="2">
то в PDF пишет array, а если этот же чанк использовать для отправки на email, то все ок и в письме отображается корректно. Никто с подобным не сталкивался? Как победить?
Подскажите пожалуйста. как корректно передавать сам файл pdf, а не ссылку на него. modx.pro/help/12408/#comment-81924 — в данной статье, нету конкретно, как передать фал pdf
Что вы понимаете под передачей файла? Если речь о прикреплении его к письму, то там есть сниппет SendFilePDF
Взял данный снипед
Но сам файл не прикрепляется, ссылка есть.а файла нету
Но сам файл не прикрепляется, ссылка есть.а файла нету
<?php
$fields = $hook->getValues(); //поля из формы
$NF = $fields['filesToUpload'];//получаем имя и путь загруженного файла
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('tpl.Bezopasnt', $fields); — поменял свой файл
//формируем PDF
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$modx->mail->set(modMail::MAIL_SUBJECT, 'Поступила заявка');
$modx->mail->address('to', 'nuikitatit@yandex.ru'); — свою почту
$modx->mail->address('to', $mail_z);
$modx->mail->address('reply-to', $modx->getOption('emailsender'));
$modx->mail->attach($modx->getOption('base_path').'assets/pdf/'.$result.'.pdf');
$modx->mail->attach($modx->getOption('base_path').$NF);
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
return true;
$fields = $hook->getValues(); //поля из формы
$NF = $fields['filesToUpload'];//получаем имя и путь загруженного файла
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('tpl.Bezopasnt', $fields); — поменял свой файл
//формируем PDF
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$modx->mail->set(modMail::MAIL_SUBJECT, 'Поступила заявка');
$modx->mail->address('to', 'nuikitatit@yandex.ru'); — свою почту
$modx->mail->address('to', $mail_z);
$modx->mail->address('reply-to', $modx->getOption('emailsender'));
$modx->mail->attach($modx->getOption('base_path').'assets/pdf/'.$result.'.pdf');
$modx->mail->attach($modx->getOption('base_path').$NF);
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
return true;
PDF файл здесь лежит?
assets/pdf/
Логи нужно смотреть. У меня этот скрипт до сих пор работает, поэтому ошибка явно где-то в мелочах. Либо пути не те, либо еще какая-то мелочь. Так по одному куску кода можно бесконечно гадать.
Можете написать на почту nuikitatit@yandex.ru, пришлю весь код, в логах
[2024-08-20 16:02:10] (ERROR in modPDF @ /home/berserkb/daliom.berserk-dev.by/core/components/pdfresource/src/modPDF.php: 128) customFonts does not contain a JSON encoded array.
[2024-08-20 16:02:10] (ERROR in modPDF @ /home/berserkb/daliom.berserk-dev.by/core/components/pdfresource/src/modPDF.php: 128) customFonts does not contain a JSON encoded array.
Вот снипед SendFilePDF, только в нем проблема
<?php
$fields = $hook->getValues(); //поля из формы
$NF = $fields['filesToUpload'];//получаем имя и путь загруженного файла
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('tpl.Bezopasnt', $fields);
//формируем PDF
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$modx->mail->set(modMail::MAIL_SUBJECT, 'Поступила заявка');
$modx->mail->address('from', 'n.titov@berserk.by');
$modx->mail->address('to', 'nuikitatit@yandex.ru');
$modx->mail->address('reply-to', $modx->getOption('emailsender'));
$modx->mail->attach($modx->getOption('base_path').'assets/pdf/'.$result.'.pdf');
$modx->mail->attach($modx->getOption('base_path').$NF);
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
return true;
файлы точно хранятся assets/pdf/
в журнале ошибок только вот это
[2024-08-20 17:09:23] (ERROR in modPDF @ /home/berserkb/daliom.berserk-dev.by/core/components/pdfresource/src/modPDF.php: 128) customFonts does not contain a JSON encoded array.
[2024-08-20 17:09:23] (ERROR in modPDF @ /home/berserkb/daliom.berserk-dev.by/core/components/pdfresource/src/modPDF.php: 128) customFonts does not contain a JSON encoded array.
<?php
$fields = $hook->getValues(); //поля из формы
$NF = $fields['filesToUpload'];//получаем имя и путь загруженного файла
$fields['filesToUpload'] = str_replace('assets/pdf/','',$fields['filesToUpload']);
$mail_z = $fields['contact_email'];
$message = $modx->getChunk('tpl.Bezopasnt', $fields);
//формируем PDF
$pdo = $modx->getService('pdoFetch');
$pdfTpl = $modx->getOption('pdfTpl', $formit->config, '', true);
$content = $pdo->getChunk($pdfTpl, $fields);
$config = array();
$config = array_merge($config, $fields, array(
'content' => $content,
'author' => $author,
'title' => $title,
));
// формируем ссылку на PDF
$result = $modx->runSnippet('PdfCreate', $config);
$modx->getService('mail', 'mail.modPHPMailer');
$modx->mail->set(modMail::MAIL_BODY, $message);
$modx->mail->set(modMail::MAIL_FROM, $modx->getOption('emailsender'));
$modx->mail->set(modMail::MAIL_FROM_NAME, $modx->getOption('site_name'));
$modx->mail->set(modMail::MAIL_SUBJECT, 'Поступила заявка');
$modx->mail->address('from', 'n.titov@berserk.by');
$modx->mail->address('to', 'nuikitatit@yandex.ru');
$modx->mail->address('reply-to', $modx->getOption('emailsender'));
$modx->mail->attach($modx->getOption('base_path').'assets/pdf/'.$result.'.pdf');
$modx->mail->attach($modx->getOption('base_path').$NF);
$modx->mail->setHTML(true);
if (!$modx->mail->send()) {
$modx->log(modX::LOG_LEVEL_ERROR,'An error occurred while trying to send the email: '.$modx->mail->mailer->ErrorInfo);
}
$modx->mail->reset();
return true;
файлы точно хранятся assets/pdf/
в журнале ошибок только вот это
[2024-08-20 17:09:23] (ERROR in modPDF @ /home/berserkb/daliom.berserk-dev.by/core/components/pdfresource/src/modPDF.php: 128) customFonts does not contain a JSON encoded array.
[2024-08-20 17:09:23] (ERROR in modPDF @ /home/berserkb/daliom.berserk-dev.by/core/components/pdfresource/src/modPDF.php: 128) customFonts does not contain a JSON encoded array.
Ну если файлы есть, то нужно смотреть есть ли что в переменных NF и result.
По идее нужна одна, вторая отвечает за загруженные файлы, которые нужны только в моем случае, это приложения к pdf заявке.
Я честно сказать уже не помню за давностью лет.
По идее нужна одна, вторая отвечает за загруженные файлы, которые нужны только в моем случае, это приложения к pdf заявке.
Я честно сказать уже не помню за давностью лет.
В том-то и дело, нашел еще проблему, что не загружается phpmail, его нету
Я же говорил. Скрипт рабочий. Либо в него данные не передаются, либо еще что-то.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.