Необходимо записывать в текстовый файл данные введенные в форме
Необходимо записывать в текстовый файл данные введенные в форме на сайте. Форма отправляется по AJAX обработчику и далее уходит письмо на почту. С письмом все отлично, оно доходит, но в файл ничего не записывается. Вот код:
<?php function ajax_form(){ $name = $_REQUEST['name']; $contact = $_REQUEST['contact']; $message = $_REQUEST['message']; $response = ''; $thm = 'Сообщение с сайта'; $thm = "=?utf-8?b?". base64_encode($thm) ."?="; $msg = "Имя: ".$name."<br /> Контакты: ".$contact ."<br /> Сообщение: ".$message ."<br />"; $mail_to = 'mail@mail.ru'; $headers = "Content-Type: text/html; charset=utf-8\n"; $headers .= 'From: site.name' . "\r\n"; // Отправляем почтовое сообщение if(mail($mail_to, $thm, $msg, $headers)){ $response = 'Сообщение отправлено'; }else $response = 'Ошибка при отправке'; // Сообщение о результате отправки почты if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){ echo $response; wp_die(); } // Логирование $file = "logs.txt"; $Saved_File = fopen($file, 'a+'); fwrite($Saved_File, $msg); fclose($Saved_File); } add_action('wp_ajax_nopriv_ajax_order', 'ajax_form' ); add_action('wp_ajax_ajax_order', 'ajax_form' ); ?>
Перефразирую комментатора выше кодом:
<?php function ajax_form(){ $name = $_REQUEST['name']; $contact = $_REQUEST['contact']; $message = $_REQUEST['message']; $response = ''; $thm = 'Сообщение с сайта'; $thm = "=?utf-8?b?". base64_encode($thm) ."?="; $msg = "Имя: ".$name."<br /> Контакты: ".$contact ."<br /> Сообщение: ".$message ."<br />"; $mail_to = 'mail@mail.ru'; $headers = "Content-Type: text/html; charset=utf-8\n"; $headers .= 'From: site.name' . "\r\n"; // Отправляем почтовое сообщение if(mail($mail_to, $thm, $msg, $headers)){ $response = 'Сообщение отправлено'; } else { $response = 'Ошибка при отправке'; } // Сообщение о результате отправки почты if ( defined( 'DOING_AJAX' ) && DOING_AJAX ){ echo $response; // Логирование // Можно было в одну строу file_put_contents(); $file = "logs.txt"; $Saved_File = fopen($file, 'a+'); fwrite($Saved_File, $msg); fclose($Saved_File); wp_die(); } } add_action('wp_ajax_nopriv_ajax_order', 'ajax_form' ); add_action('wp_ajax_ajax_order', 'ajax_form' ); ?>
Как же он будет сохранять, если ты wp_die() делаешь раньше, чем отрабатывает функционал логирования?