Answer the question
In order to leave comments, you need to log in
What could be wrong with the form?
created a feedback form with a record of the entered data in a txt file
<!DOCTYPE HTML>
<html>
<head>
<title>Форма</title>
</head>
<body>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js" type="text/javascript"></script>
<script>
$(document).ready(function(){
$('#btn_submit').click(function(){
// собираем данные с формы
var user_name = $('#user_name').val();
var user_email = $('#user_email').val();
var text_comment = $('#text_comment').val();
// отправляем данные
$.ajax({
url: "action.php", // куда отправляем
type: "post", // метод передачи
dataType: "json", // тип передачи данных
data: { // что отправляем
"user_name": user_name,
"user_email": user_email,
"text_comment": text_comment
},
// после получения ответа сервера
success: function(data){
$('.messages').html(data.result); // выводим ответ сервера
}
});
});
});
</script>
</head>
<body>
<br/>
<div class="messages"></div>
<br/>
<label>Ваше имя:</label><br/>
<input type="text" id="user_name" value="" /><br/>
<label>Ваш e-mail:</label><br/>
<input type="text" id="user_email" value="" /><br/>
<label>Текст сообщения:</label><br/>
<textarea id="text_comment"></textarea>
<br/>
<input type="button" value="Отправить" id="btn_submit" />
</body>
</html>
<?php
$msg_box = ""; // в этой переменной будем хранить сообщения формы
$errors = array(); // контейнер для ошибок
// проверяем корректность полей
if($_POST['user_name'] == "") $errors[] = "Поле 'Ваше имя' не заполнено!";
if($_POST['user_email'] == "") $errors[] = "Поле 'Ваш e-mail' не заполнено!";
if($_POST['text_comment'] == "") $errors[] = "Поле 'Текст сообщения' не заполнено!";
// если форма без ошибок
if(empty($errors)){
// собираем данные из формы
$message = "Имя пользователя: " . $_POST['user_name'] . "<br/>";
$message .= "E-mail пользователя: " . $_POST['user_email'] . "<br/>";
$message .= "Текст письма: " . $_POST['text_comment'];
send_mail($message); // отправим письмо
// выведем сообщение об успехе
$msg_box = "<span style='color: green;'>Сообщение успешно отправлено!</span>";
}else{
// если были ошибки, то выводим их
$msg_box = "";
foreach($errors as $one_error){
$msg_box .= "<span style='color: red;'>$one_error</span><br/>";
}
}
// делаем ответ на клиентскую часть в формате JSON
echo json_encode(array(
'result' => $msg_box
));
// функция отправки письма
function send_mail($message){
// почта, на которую придет письмо
$file=fopen('mes.txt','a+');
fputs($file,$_POST['user_name']);
fputs($file,$_POST['user_email']);
fputs($file,$_POST['text_comment']);
fclose($file);
// отправляем письмо
mail($message);
}
?>
Answer the question
In order to leave comments, you need to log in
You most likely have an error sending your message. Writing to file occurs, but the message is not sent
<?php
ini_set('display_errors', true);
ini_set('html_errors', false);
error_reporting(E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
ini_set('error_reporting', E_ALL ^ E_WARNING ^ E_DEPRECATED ^ E_NOTICE);
$msg_box = ""; // в этой переменной будем хранить сообщения формы
$errors = array(); // контейнер для ошибок
// проверяем корректность полей
if($_POST['user_name'] == "") $errors[] = "Поле 'Ваше имя' не заполнено!";
if($_POST['user_email'] == "") $errors[] = "Поле 'Ваш e-mail' не заполнено!";
if($_POST['text_comment'] == "") $errors[] = "Поле 'Текст сообщения' не заполнено!";
// если форма без ошибок
if(empty($errors)){
// собираем данные из формы
$message = "Имя пользователя: " . $_POST['user_name'] . "<br/>";
$message .= "E-mail пользователя: " . $_POST['user_email'] . "<br/>";
$message .= "Текст письма: " . $_POST['text_comment'];
if(send_mail($message)){
// выведем сообщение об успехе
$msg_box = "<span style='color: green;'>Сообщение успешно отправлено!</span>";
}else{
$msg_box = "<span style='color: red;'>Сообщение не отправлено!</span>";
}
}else{
// если были ошибки, то выводим их
$msg_box = "";
foreach($errors as $one_error){
$msg_box .= "<span style='color: red;'>$one_error</span><br/>";
}
}
// делаем ответ на клиентскую часть в формате JSON
echo json_encode(array(
'result' => $msg_box
));
// функция отправки письма
function send_mail($message){
// почта, на которую придет письмо
if(file_put_contents('mes.txt', $_POST['user_name']."\n".$_POST['user_email']."\n".$_POST['text_comment'], FILE_APPEND | LOCK_EX)){
return true;
}
else{
return false;
}
}
?>
Perhaps success is not performed.
Look at the web server logs for errors from the php script.
From the browser side, errors in the JS console. You can output debug messages via console.log() and see what parts are executed and what is returned.
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question