У меня очень простой PHP-файл. Я хочу иметь два текстовых поля для ввода пользователя и кнопку отправки. Пользователь вводит свое имя и фамилию, затем я хотел бы добавить или создать файл TXT с данными, введенными из поля 1 и поля2.
Возможно, я собираюсь сделать это неправильно. Я опубликую два способа, которыми я занимался.
<html> <head> <title>Field1 & 2</title> </head> <body> <form> What is your name?<br> <input type="text" name="field1"><br> <input type="text" name="field2"><br> <input type="submit" value="Submit"> </form> <?php $txt= $_POST['field1'].' - '.$_POST['field2']; $var_str3 = var_export($txt, true); //is this necessary? $var3 = "$var_str3"; //is this necessary? file_put_contents('fields.txt', $var3.PHP_EOL, FILE_APPEND); ?> </body> </html>
Я не могу понять, как получить данные из field1 и field2 в строковые переменные.
Я также испортил использование этого php вместо раздела, указанного выше.
<?php $txt= "data.txt"; if (isset($_POST['field1']) && isset($_POST['field2'])) { $fh = fopen($txt, 'a'); $txt=$_POST['field1'].' - '.$_POST['field2']; fwrite($fh,$txt); // Write information to the file fclose($fh); // Close the file } ?>
Вы должны узнать о HTML-формах и обработке форм PHP.
В коде вы должны использовать метод HTTP формы. И данные формы должны отправляться для обработки в файл PHP.
В этом коде я использую метод HTTP PSOT, вы также можете использовать метод GET, результат будет таким же. Этот два метода используется для сбора данных формы. И имя файла php – "action.php"
.
index.html
<html> <head> <title>Field 1 & 2</title> </head> <body> <form action="action.php" method="post"> What is your name?<br> <input type="text" name="field1"><br> <input type="text" name="field2"><br> <input type="submit" value="Submit"> </form> </body> </html>
action.php
<?php $path = 'data.txt'; if (isset($_POST['field1']) && isset($_POST['field2'])) { $fh = fopen($path,"a+"); $string = $_POST['field1'].' - '.$_POST['field2']; fwrite($fh,$string); // Write information to the file fclose($fh); // Close the file } ?>
Давайте возьмем фрагмент из http://www.w3schools.com/html/html_forms.asp
<form action="action_page.php" method="post"> First name:<br> <input type="text" name="firstname" value=""><br> Last name:<br> <input type="text" name="lastname" value=""><br><br> <input type="submit" value="Submit"> </form>
Обратите внимание на первую строку: при action_page.php
формы вызывается скрипт php: action_page.php
.
action_page.php
– это ваша веб-страница с формой и встроенным скриптом php. action_page.php
отображает пустую форму, а затем обрабатывает представленные данные.
В первой строке также указано, что отправленные данные отправляются методом POST
.
Часть php будет выглядеть так:
<?php if( isset($_POST['firstname'] ) && isset( $_POST['lastname'] ) ) { $txt= $_POST['firstname'].' - '.$_POST['lastname'] . PHP_EOL; file_put_contents('fields.txt', $txt, FILE_APPEND); } ?>
Оператор if
существует потому, что при первом action_page.php
скрипта action_page.php
его целью является только отображение формы и получение POST-данных.
Когда форма отправляется пользователем, скрипт будет получать данные и хранить их в файле.
Сценарий также (с этим подходом) снова отобразит пустую форму, готовую для отправки другой записи.
Вы можете изменить порядок вещей, чтобы иметь две веб-страницы: одну с формой, другую с сообщением «Спасибо» и скрипт php обработки данных.