Генератор отчетов - сохранить и перенаправить на отчет - PullRequest
0 голосов
/ 01 апреля 2020

Я создаю генератор отчетов, который должен сохранить отчет, а также перенаправить пользователя к версии отчета по указанному c URL-адресу (в данном случае я просто добавил Yahoo в качестве теста).

Вопрос: можно ли сохранить файл и перенаправить пользователя на URL в том же сценарии?

Проблема: скрипт выполняет перенаправление, но не сохраняет файл.

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Report generator</title>
</head>
<body>

<pre>

  <form method="post" action="https://se.yahoo.com" target="_blank">

    <label for="fname">First name:</label><br>
    <input type="text" id="fname" name="fname"><br>
    <input type="submit" name="button_1" value="button_1">

  </form>

  <?php

  var_dump($_POST);

    // Button event listener.

    if (isset($_POST["button_1"])) {

      $json_data = "string";
      $data = json_encode($json_data);

      file_put_contents(
        "user_data/data.txt",
        $json_data
      );

    }

  ?>

</body>
</html>

1 Ответ

2 голосов
/ 01 апреля 2020

Если вы введете https://se.yahoo.com - это атрибут action, в котором форма будет публиковать данные формы, поэтому он вообще не будет go в этом сценарии

<?php

// Button event listener.
if (isset($_POST["button_1"])) {

    $json_data = "string";
    $data = json_encode([$json_data]);

    file_put_contents("user_data/data.txt",$json_data);
    // really not sure if this is what you wanted to do, bit of a guess really
    header('Location: https://se.yahoo.com?fname='.$_POST['fname']);
    exit();
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Report generator</title>
</head>
<body>

  <form method="post" action="" target="_blank">

    <label for="fname">First name:</label><br>
    <input type="text" id="fname" name="fname"><br>
    <input type="submit" name="button_1" value="button_1">

  </form>
  </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...