Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Запись в файл из формы v2.0

Обсуждение темы Запись в файл из формы v2.0 в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; Вариант 2: Форма: Код HTML: <form action= "request.php" method= "post" > <input name= "1" type= "text" > <input name= "2" type= "text" > ...


Закрытая тема
 
Опции темы
Старый 14.01.2009, 14:35   #1
Вариант 2:
Форма:
Код HTML:
<form action="request.php" method="post"> 
<input name="1" type="text">
<input name="2" type="text"> 
<input name="3" type="text">
<input name="4" type="text"> 
<input type="submit">
Обработчик:
Код:
<? 
$fo=fopen("file.php","w"); 
...
...
...
...
fclose($fo); 
?>

Файл получаемый должон быть в формате:
1|2|3|4
1|2|3|4

А теперь, вопросы (Вопросы, наверное, конкретно в Nielson'у):

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

2. Вывод из файла в список, 2 вида. Допустим список из 5 верхних строк, ну и из всех.

Последний раз редактировалось kost; 02.02.2009 в 16:43..
 
Старый 14.01.2009, 14:35
Ссылки
Старый 14.01.2009, 16:08   #2
Я вообще-то не программист совсем

1. Никак без двойной перезаписи.
Возможно тебя интересует не запись, а вывод данных из файла. Например, ты хранишь в файле данные гостевой книги и выводить сообщения необходимо от новых к старым. А поскольку в файл пишется новая строка в конец - нужно как-то перевернуть порядок строк. Это делается функцией array_reverse($file);
Код:
$file = file("filename.txt");
$file = array_reverse($file);
2. По-поводу списка.
Код:
$str = 5; 

//запускаем цикл, который сделает то количество
//итераций, которое мы указали в $str
 for ($i = 0; $i < $str; $i++) 
    {

//создаем массив из строки, разбивая ее указанными в файле символами "|". 
//Таким образом, мы на выходе получаем массив вида $mess[0] - 1, $mess[1] - 2 
//ну и т.д. 
$mess = explode("|",$file[$i]); 


//ну а дальше уже выводим наши данные
echo "Первый элемент в строке - $mess[0]\n";
echo "Второй элемент в строке - $mess[1]\n";

    }
Вот как-то так.
 
Этот пользователь сказал спасибо Nielson за это полезное сообщение:
vitalius (02.02.2009)
Старый 14.01.2009, 19:04   #3
1. Сначала считываем содержимое файла в виде текста, потом открываем файл для записи (старые данные стираются), вносим первую строку, перевод строки и считанное ранее содержимое.
 
Этот пользователь сказал спасибо deMone за это полезное сообщение:
vitalius (02.02.2009)
Старый 14.01.2009, 20:49   #4
Цитата:
Сообщение от Nielson Посмотреть сообщение
Возможно тебя интересует не запись, а вывод данных из файла. Например, ты хранишь в файле данные гостевой книги и выводить сообщения необходимо от новых к старым.
Вточку! Спасибо, буду разбираться

Добавлено через 24 минуты

Бррр, немного не то имел ввиду.
Есть у меня форма - 4 поля, каждое поле соотв- переменная, кот. далее пишется в файл.
При выводе я хочу получить 4 переменные (4 вида информации) из 1,2,3,4... сток.

Т.е. $date - дата, $msg - мессага, $title - название, $link - ссылка... как мне это реализовать. У мну был такой скрипт, да потерялся приходится восстанавливать

Добавлено через 30 секунд

собственно вот зачем я ставил "|" - разделителем...

Последний раз редактировалось vitalius; 14.01.2009 в 20:49.. Причина: Добавлено сообщение
 
Старый 14.01.2009, 20:58   #5
vitalius, покопайтесь насчет fprintf() и fscanf()
 
Старый 14.01.2009, 21:54   #6
Код:
//a+ - это дозапись в файл. Если хочешь, что бы файл очищался 
//перед записью - нужно писать w+ 
$fo=fopen("file.php","a+"); 
$txt = "$1|$2|$3|$4\n";
fputs($fo, $txt);
fclose($fo);
 
Старый 15.01.2009, 15:33   #7
Я вышел из проблемы след. образом. Всё таже форма, обрабатывается так:
Код:
<? 
$file_news = "news.txt"; // файл гостевой книги 
$file_tmp = "news_tmp.txt"; // временный файл 
$str = "$n_date, $_n_title, $n_news, $n_link"; 
// проверяем, не было ли сбоя в предыдущем запуске скрипта 
if (file_exists ($file_tmp)) die ("Временный файл существует!"); 
// копируем содержимое файла в tmp 
if (copy ($file_news, $file_tmp)) 
{ 
// если удачно скопировался, можно перезаписать основной файл 
if ($w=fopen($file_news, "w")) 
{ 
flock($w,2); // блокируем файл 
fwrite ($w, $str."\n"); // записываем первую строку 
if (!$r=fopen($file_tmp, "r")) die ("Невозможно открыть файл"); 
flock ($r,1); 
while ($str=fgets($r, 10240)) // читаем построчно 
{ 
fputs ($w, $str); // пишем построчно 
} 
flock ($r,3); 
fclose ($r); 
flock ($w,3); 
fclose ($w); 
unlink ($file_tmp); // удаляем временный файл 
} 
} 
?>
Единственная проблема - в файле отображаются только запятые... переменные чтой-то не пишутся.

Последний раз редактировалось kost; 02.02.2009 в 16:43..
 
Старый 15.01.2009, 19:25   #8
А потому-что переменные нужно писать либо $_GET['var'] либо $_POST['var'] — в зависимости от того — каким методом передаются данные.
 
Старый 02.02.2009, 01:58   #9
Огромное всем спасибо!!! Пардон, за то что дотошный, но сегодня разобрался. написал 2 скриптика:
1) нужные именно мне новости в необх. формате
2) редактор версий программ

Thanks a lot!
 
Старый 04.02.2009, 17:14   #10
http://web-silver.ru/forum/showthrea...E2%FB%E2%EE%E4

Тут интересная тема, буду благодарен за подсказку: как её прикрутить к вышележащему скрипту на вывод, скажем, по 5 или по 10 сообщ... ?
 
Старый 04.02.2009, 17:14
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите разобраться файл php для формы обратной связи 74ivan74 ASP, Perl, PHP и MySQL 2 23.07.2009 13:14
Работа с формами. Запись в файл. vitalius ASP, Perl, PHP и MySQL 2 12.01.2009 13:01
Запись в файл .htpasswd переменных на PHP Anatol ASP, Perl, PHP и MySQL 5 07.08.2007 08:33
Запись на Cd gatto Технологии Flash 4 27.03.2005 12:35
Чтение и запись в файл... ВЛАСТЕЛИН HTML, CSS, JavaScript 4 08.06.2003 00:27


Текущее время: 07:11. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум