#php #forms
#php #формы
Вопрос:
У меня есть форма, которая отправляет данные по электронной почте и сохраняет их в файл, но я хочу, чтобы каждый раз они сохранялись в другой файл.
Вот мой код:
<?php
// Contact Form
// get posted data into local variables
$EmailFrom = "gmail.com";
$EmailTo = "mail@gmail.com";
$Subject = "$Website";
$Website = Trim(stripslashes($_POST['Website']));
$Title = Trim(stripslashes($_POST['Title']));
$Keywords = Trim(stripslashes($_POST['Keywords']));
// validation
$validationOK=true;
if (!$validationOK) {
print "<meta http-equiv="refresh" content="0;URL=error.htm">";
exit;
}
// prepare email body text
$Body = "";
$Body .= "Website: ";
$Body .= $Website;
$Body .= "n";
$Body .= "Title: ";
$Body .= $Title;
$Body .= "n";
$Body .= "Keywords: ";
$Body .= $Keywords;
$Body .= "n";
// send email
$success = mail($EmailTo, $Subject, $Body, "From: <$EmailFrom>");
// redirect to success page
if ($success){
$string = '"Website","Title","Keywords"' . PHP_EOL;
$string .= ""$Website","$Title","$Keywords"" . PHP_EOL;
file_put_contents('formdata.txt', $string); // write file
print "<meta http-equiv="refresh" content="0;URL=ok.html">";
}
else{
print "<meta http-equiv="refresh" content="0;URL=error.html">";
}
?>
Комментарии:
1. Я был бы склонен предложить поместить вашу информацию в базу данных, в противном случае вам придется использовать информацию о временных метках и / или случайные числа или guid для генерации уникальных имен файлов.
2. Меня больше интересует наличие этих файлов отчета в папке, чтобы я мог просматривать и загружать их, когда мне нужно. Спасибо
Ответ №1:
Вот быстрое решение, которое использует текущее время:
file_put_contents('formdata_' . time() . '.txt', $string); // write file
Комментарии:
1. Спасибо за ваш быстрый ответ, однако, похоже, это не работает, и на самом деле это не сохраняет файл и больше не отправляет электронное письмо..
2. @Jack_R: Поскольку эта строка появляется после отправки электронного письма, я должен был бы сказать, что что-то еще не так.
3. Вы правы, это была другая переменная, это работает так, как мне было нужно, спасибо.
4. Я изменил порядок формы, чтобы сначала создавался файл, а затем отправлялся результат по электронной почте, как я могу прикрепить файл к электронной почте? поскольку его название меняется каждую секунду.. Я пытался использовать, $fileatt = $ file; но безуспешно