подскажите пожалуйста, что нужно добавить в коде, чтобы в результате анкетирования ответы записывались в текстовый файл?
<?php
if(isset($_POST['firstname']) && isset($_POST['eduform']) &&
isset($_POST['comment']) && isset($_POST['courses']))
{
$name = htmlentities($_POST['firstname']);
$secondname = htmlentities($_POST['secondname']);
$eduform = htmlentities($_POST['eduform']);
$hostel = "нет";
if(isset($_POST['hostel'])) $hostel = "да";
$comment = htmlentities($_POST['text']);
$courses = $_POST['courses'];
$output ="
<html>
<head>
<title>Анкетные данные</title>
</head>
<style>
body{
background: #C5D2DB;
font-family: Verdana, Geneva, sans-serif;
font-size: 14px;
font-weight: bold;
text-align: center;
}
ul{
list-style-type: none;
text-align: center;
}
container{
padding-top: 20px;
}
</style>
<body>
<container>
Вас зовут: $name<br />
Ваша фамилия: $secondname<br />
Форма обучения: $eduform<br />
Требуется общежитие: $hostel<br />
Ваш комментарий: $comment<br />
Выбранный факультет:
<ul>";
foreach($courses as $item)
$output.="<li>" . htmlentities($item) . "</li>";
$output.="</ul></container></body></html>";
echo $output;
}
else
{
echo "Введенные данные некорректны";
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>punkt_2</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<h2>Анкета первокурсника</h2>
<form action="input.php" method="POST">
<p>Введите имя:<br>
<input type="text" name="firstname" /></p>
<p>Введите фамилию:<br>
<input type="text" name="secondname" /></p>
<p>Форма обучения: <br>
<input type="radio" name="eduform" value="очно"/>очно <br>
<input type="radio" name="eduform" value="заочно"/>заочно </p>
<p>Требуется общежитие:<br>
<input type="checkbox" name="hostel" />Да</p>
<p>Выберите факультет: <br>
<select name="courses[]" size="5" multiple="multiple">
<option value="Факультет экономической информатики">ЭИ</option>
<option value="Факультет экономики и права">ЭП</option>
<option value="Факультет менеджмента и маркетинга">МиМ</option>
<option value="Факультет международных экономических отношений">МЭО</option>
<option value="Факультет консалтинга и международного бизнеса">КиМБ</option>
<option value="Финансовый факультет">ФФ</option>
<option value="ФАКУЛЬТЕТ подготовки иностранных граждан">ФПИГ</option>
</select></p>
<p>Краткий комментарий: <br>
<textarea name="comment" maxlength="200"></textarea></p>
<input type="submit" value="Отправить">
</form>
</div>
</body>
</html>
Доброе утро.
Используйте file_put_contents(); Не забывайте о правах на запись для файла.
foreach($courses as $item){
$output.="<li>" . htmlentities($item) . "</li>";
$output.="</ul></container></body></html>";
echo $output;
}
file_put_contents('file.txt', $output);
p.s. Хотя Ваш весь код надо переписать. Но если это первые шаги, то...
Я не уверен что txt самое то, но вот как вариант для csv
Еще для записи нужно будет добавить права то есть
sudo chown -R www-data:www-data someFile
Ну или создать отдельную папку чтобы не назначать полностью права на всю текущую папку или же создать группу
if(isset($_POST['firstname']) && isset($_POST['eduform']) &&
isset($_POST['comment']) && isset($_POST['courses']))
{
$hostel = "нет";
if(isset($_POST['hostel'])) $hostel = "да";
$comment = isset($_POST['text']) ? $_POST['text'] : 'комментария нету';
$filename = 'tes.csv';
$file_exist_bool = file_exists($filename);
// проверка на наличия файла в последующем два раза будет использоваться
$method = 'w'; // опредяляем метод записи
if( $file_exist_bool )
$method = 'a+'; // в случае если файл существует, метод дозавписи в файл
$file = fopen($filename, $method);
if( !$file_exist_bool )
fputcsv($file, array('firstname', 'secondname', 'eduform', 'hostel', 'text', 'courses'));
// если файла нету, то записать header csv файла
$data = array(
array(
$_POST['firstname'],
$_POST['secondname'],
$_POST['eduform'],
$_POST['hostel'],
$comment, implode("&", $_POST['courses']) // здесь разбил так, как нужен string,
// то есть можно выбрать несколько факультетов
// по вопросу неправильно, но это уже сам сиправляй
)
);
foreach ($data as $row)
{
fputcsv($file, $row);
// сама запись
}
fclose($file);
}
else
{
echo "Введенные данные некорректны";
}
И как результат будет
firstname,secondname,eduform,hostel,text,courses
Имя,Фамилия,очно,on,"комментария нету","Факультет экономики и права"
А дальше пользуешься как xml, редактируешь, смотришь
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Имеется форма с динамическим добавления полейПодскажите пожалуйста как правильно записать данные с динамических полей в БД
подскажите почему я не могу обновить расширения компосера, локально я установил