Как я могу сохранить данные формы в другое имя файла для каждой отправки?

#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; но безуспешно