Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.94/170: Рейтинг темы: голосов - 170, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 30
1

Запись данных из формы в текстовый файл

12.09.2009, 01:42. Показов 31230. Ответов 24
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Данные, находящиеся в <textarea name="source"></textarea>, сохраняются в текстовый файл file.txt вот этим скриптом:

PHP
1
2
3
4
5
6
7
<?php
$source = $_POST['source'];
$file = "file.txt";
$Saved_File = fopen($file, 'w+');
fwrite($Saved_File, $source);
fclose($Saved_File);
?>
Но при этом, каждая новая запись затирает предидущую. Как прописать так, чтобы каждая новая запись происходила в новый файл (1.txt, 2.txt, 3.txt, ...)?

И возможно ли такое, чтобы при нажатии на кнопку "сохранить", появлялось окно с выбором директории для сохранения и возможностью прописывать имя файла и формат?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.09.2009, 01:42
Ответы с готовыми решениями:

Запись данных из формы в текстовый файл
Здравствуйте, подскажите как решить проблему? Есть форма с записью отправленных данных в файл но...

Select + запись данных из формы в текстовый файл. Freebsd+Windows
Доброго времени суток. Подскажите почему сей код некорректно выдает значения и упорно отказывается...

запись из формы в текстовый файл
Помогите, пожалуйста! Не получается сохранить в файл: guestbook.txt - файл создала,но там...

Запись значений полей формы в текстовый файл
Здравствуйте, подскажите как методом php при вводе пользователя в инпут текста (email) он...

24
172 / 101 / 10
Регистрация: 22.02.2009
Сообщений: 440
12.09.2009, 10:13 2
Вместо
PHP
1
$Saved_File = fopen($file, 'w+');
используй
PHP
1
$Saved_File = fopen($file, 'a+');
А насчёт выбора директории и возможности прописывать имя и формат - стандартных средств для решения этой задачи нет, но можно написать самому.
0
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 30
12.09.2009, 10:55  [ТС] 3
За ответ, спасибо! Но...
PHP
1
$Saved_File = fopen($file, 'a+');
Этот скрипт не создает новых документов (1.txt, 2.txt, 3.txt,...), а лишь дописывает данные в один и тот же файл, что мне не подходит. Меня интеоесует именно как каждый раз писать инфу в новый файл.
0
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
12.09.2009, 11:39 4
Цитата Сообщение от Yurka_kursant
Этот скрипт не создает новых документов
Вот фраза из хелпа:
'a+' - Открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
0
Кто вы, мистер Смит?
285 / 117 / 2
Регистрация: 03.03.2008
Сообщений: 525
12.09.2009, 11:40 5
Самый простой вариант
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$source = $_POST['source'];
$triad = $_POST['triad'];//расширение файла
$fh = fopen("nomber.txt","w+");//колличество файлов
$i = fgets($fh);
fputs($i++);
fclose($fh);
$file = $i.".".$triad;
$saved_file = fopen($file, 'w+');
fwrite($saved_file, $source);
fclose($saved_file);
?>
Скриптик не тестировал, могут быть проблемы
0
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 30
12.09.2009, 12:56  [ТС] 6
Только что протестировал.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php
$source = $_POST['source'];
$triad = $_POST['triad'];//расширение файла
$fh = fopen("nomber.txt",'w+');//колличество файлов
$i = fgets($fh);
fputs($i++);
fclose($fh);
$file = $i.".".$triad;
$Saved_file = fopen($file, 'w+');
fwrite($Saved_file, $source);
fclose($Saved_file);
?>
Вот ошибки, которые любезно указала Opera:

Warning: Wrong parameter count for fputs() in Z:\home\psl\www\save.php on line 6

Warning: fopen(.) [function.fopen]: failed to open stream: Permission denied in Z:\home\psl\www\save.php on line 9

Warning: fwrite(): supplied argument is not a valid stream resource in Z:\home\psl\www\save.php on line 10

Warning: fclose(): supplied argument is not a valid stream resource in Z:\home\psl\www\save.php on line 11
0
Кто вы, мистер Смит?
285 / 117 / 2
Регистрация: 03.03.2008
Сообщений: 525
12.09.2009, 14:05 7
Извиняюсь, давно не писАл.
Цитата Сообщение от Yurka_kursant Посмотреть сообщение
Warning: Wrong parameter count for fputs() in Z:\home\psl\www\save.php on line 6
Конечно. Не указан источник
PHP
1
fputs($fh, $i++);
Остальные ошибки скорее всего вызванны тем, что переменная $triad пустая. Подразумивалось, что на предыдущей странице будет формочка, которая передает на скрипт строку с расширением (например txt или bkp)
0
0 / 0 / 0
Регистрация: 11.04.2009
Сообщений: 30
12.09.2009, 14:17  [ТС] 8
Цитата Сообщение от J.Smith Посмотреть сообщение
Извиняюсь, давно не писАл.

Конечно. Не указан источник
PHP
1
fputs($fh, $i++);
Остальные ошибки скорее всего вызванны тем, что переменная $triad пустая. Подразумивалось, что на предыдущей странице будет формочка, которая передает на скрипт строку с расширением (например txt или bkp)
Не подскажешь, что за формочка?
0
Кто вы, мистер Смит?
285 / 117 / 2
Регистрация: 03.03.2008
Сообщений: 525
12.09.2009, 15:40 9
Yurka_kursant, ну вот гляди.
PHP
1
$source = $_POST['source'];
В этой строке ты получаешь данные из формы из поля с именем source. Рядом, в этой же форме ты должен создать поле с именем triad, в которое будет вводиться расширение файла. Соответственно читаться оно будет строкой
PHP
1
$triad = $_POST['triad'];
Как вариант можно сделать выпадающий список с расширениями, но это уже детали
1
0 / 0 / 0
Регистрация: 12.02.2012
Сообщений: 41
19.05.2012, 10:08 10
добрый день,я тут использовала ваш пример и у меня тут возникли проблемы. Есть форма с данными в конце 2кнопки,сохранить и далее. С кнопкой "сохранить" я сохраняю в файл написанный в формочке($triad = $_POST['triad']; и $file = $i."".$triad; ). Мне нужно чтобы результаты данных которые открываются кнопкой "Далее", тоже попали в этот же файл. Как это сделать? Возможно ли это???
0
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
19.05.2012, 15:22 11
Calisto09, ну вешай на кнопку "Далее" тот же скрипт, что и на сохранить, если я правильно понял тебя
0
0 / 0 / 0
Регистрация: 12.02.2012
Сообщений: 41
19.05.2012, 15:38 12
у меня кнопка "Далее" открывает 2 страницу, и заолняемые данные там другие, нужно чтобы дописывалась в тот же файл.нашла вот это {ссылка удалена}, но у меня не получается совместить со своим
0
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
19.05.2012, 15:59 13
Calisto09, давай так, кинь весь код что у тебя есть, относительно данного вопроса
0
0 / 0 / 0
Регистрация: 12.02.2012
Сообщений: 41
19.05.2012, 16:28 14
он у меня очень большой, вот фрагменты,first.htm
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<html>
<FORM name="gl" method="post" action= "first.php"  > 
3. Для экспертизы были представлены следующие документы:
<textarea Name="docs"  ROWS=2 COLS=20> </textarea> </h3><br>
<p align=left>  <br> <textarea name="triad"  ROWS=2 COLS=5> </textarea><br>
         <TABLE ALIGN=center BORDER CELLpadding="3"> 
 <tr> 
   <td style="background-color:#cc0000; color:#ffffff">
        <p><input type="submit" value="SAVE" width="0"></table>
        
    </form>
 
<TABLE ALIGN=center BORDER CELLPADDING="10">
    
<tr bgcolor=LightBlue> 
   <td><A HREF="primer.htm" TARGET="_blank"><b><p style="color: black; font-size: 0.5cm; text-align:center">&nbsp;&nbsp; Далее&nbsp;&nbsp;&nbsp;</b></A>
и обработчик first.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
if (isset($_POST['docs'])) {$docs= $_POST['docs'];}
$triad = $_POST['triad'];//расширение файла
 
 $fh = fopen("protocol.txt",'w+');//колличество файлов
$i = fgets($fh);
fputs($fh, $i++);
fclose($fh);
$file = $i."".$triad;
$Saved_file = fopen($file, 'w+');
fwrite($Saved_file, "По сосотаву документация".$docs);
 
fclose($Saved_file);
echo "<strong> 3. По составу документация </strong> $docs <br><br><br>";
?>
а это 2-я форма, primer.htm
HTML5
1
2
<h3 align=left>7. На основании изложенного, документация программного средства на <br>   <textarea Name="sootv"  ROWS=2 COLS=10> </textarea> <br> 
<form><input type="submit" name="add" value="Добавить к последнему файлу">
,надо чтобы введенный на второй странице текст попал в конец файла созданный на 1-ой стр.
0
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
19.05.2012, 16:32 15
PHP
1
 $fh = fopen("protocol.txt",'w+');//колличество файлов
вот тут не понял

берем после первой записи открываем текстовик снова с правами 'a+' и пишем так же как ты писала в первом случае. 'a+' открывает файл для чтения и записи; помещает указатель в конец файла. Если файл не существует - пытается его создать.
0
0 / 0 / 0
Регистрация: 12.02.2012
Сообщений: 41
19.05.2012, 16:48 16
ммм...это наверно осталось от моих прежних экспериментов и можно наверняка его убирать, сейчас я делаю так: в first.htm в конце пишу название файла, например протокол1.doc, протоколИС.doc и нажимаю "сохранить", нажимаю "далее" и не могу добавить в конец этого файла данные из 2ой страницы.
0
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
19.05.2012, 17:08 17
сейчас

Добавлено через 8 минут
Цитата Сообщение от Calisto09 Посмотреть сообщение
<h3 align=left>7. На основании изложенного, документация программного средства на <br> <textarea Name="sootv" ROWS=2 COLS=10> </textarea> <br> <form><input type="submit" name="add" value="Добавить к последнему файлу">
это и все что есть во втором файле?

а где же вызов обработчика?
0
0 / 0 / 0
Регистрация: 12.02.2012
Сообщений: 41
19.05.2012, 18:08 18
извиняюсь....он есть...я забыла вставить в пример,
HTML5
1
2
3
4
5
<html>
<FORM name="pr" method="post" action= "primer.php"  >
<h3 align=left>7. На основании изложенного, документация программного средства на <br>   <textarea Name="sootv"  ROWS=2 COLS=20> </textarea> <br> 
<form><input type="submit" name="add" value="Добавить к последнему файлу"> 
</html>
,

Добавлено через 29 минут
я очень надеюсь что вы мне поможете....
0
131 / 127 / 50
Регистрация: 28.04.2010
Сообщений: 928
20.05.2012, 22:01 19
Calisto09, ну а обработчик второго файла?
0
0 / 0 / 0
Регистрация: 12.02.2012
Сообщений: 41
20.05.2012, 22:02 20
именно его я немогу написать(((
0
20.05.2012, 22:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.05.2012, 22:02
Помогаю со студенческими работами здесь

Запись данных в текстовый файл
Есть код программы: #include &lt;stdio.h&gt; #include &lt;string.h&gt; int main(void) { HANDLE...

Запись данных в текстовый файл
Допустим у нас есть функция, результат которой мы должны получить с шагом (к примеру, пусть будет x...

Запись данных в текстовый файл
Расскажите, пожалуйста, как сделать запись в текстовый файл? (фамилия, имя, год рождения) И причем...

Запись данных в текстовый файл
Всем привет, подскажите как сделать так чтобы через php сценарий можно было открывать текстовые...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru