Forum Webscript.Ru

Программирование => PHP => Тема начата: alex196 от 28 Ноября 2001, 17:00:38

Название: запись из формы в файл
Отправлено: alex196 от 28 Ноября 2001, 17:00:38
как сделать чтоб что вписываеш в форму то вписывалось в фаил
Название: запись из формы в файл
Отправлено: Britva от 28 Ноября 2001, 18:45:33
Alex196
Открывай тему с нормальным названием, а не бессмысленный набор символов (???) !!!

берешь и записываешь переменные в файл
см. fopen, fputs, fclose
Название: запись из формы в файл
Отправлено: alex196 от 28 Ноября 2001, 19:38:27
а пример можеш написать
Название: запись из формы в файл
Отправлено: Stek от 28 Ноября 2001, 19:47:03
берешь документацию, читаешь выше сказанные функции. Там даже и примеры есть.
Название: запись из формы в файл
Отправлено: alex196 от 28 Ноября 2001, 19:48:54
так эту документации нигде нет
Название: запись из формы в файл
Отправлено: Britva от 28 Ноября 2001, 19:49:05
Эх,

file.html:






file.php

fputs($file, $var);
fclose($file);?>
Название: запись из формы в файл
Отправлено: Lion от 28 Ноября 2001, 21:53:20
Britva
Зачем создавать два файла если это все можно было сделать в одном ?
Название: запись из формы в файл
Отправлено: Britva от 28 Ноября 2001, 22:42:37
я привел в двух, т.к. в форуме просто быстрее написать, без дополнительных условий.
А лучше естесственно в одном (мне удобнее, например).

alex196
http://www.php.net - вот документация.
или http://www.php.net/download-docs.php
Название: запись из формы в файл
Отправлено: Lion от 28 Ноября 2001, 22:51:35
Приведи еще, если не трудно, пример в одном файле, просто интересно как это другие делают...
Название: запись из формы в файл
Отправлено: Britva от 28 Ноября 2001, 22:56:53
if(!isset($submit)) {
?>




} else {
$file = fopen("file.ext", "w");
fputs($file, $var);
fclose($file);
}
?>

или еще вариант, лучше когда проверка нужна

function form($var) {
?>

">


}

if(!isset($submit)) {
form("");
} else {
if(!$var) {
form($var);
} else {
print "ok";
//тут запись в файл
}
}
?>
Название: запись из формы в файл
Отправлено: DLama от 29 Ноября 2001, 07:16:42
To  Britva
 
 
Вопрос по синтаксису.
if(!isset($submit)) {
?>
Зачем здесь восклицательный знак? Или по другому. Почему без него нельзя обойтись?
Название: запись из формы в файл
Отправлено: Britva от 29 Ноября 2001, 09:21:36
DLama
if(!isset($submit)) - перевожу - "если не установлена переменная $submit"
а если без него, то "если установлена переменная $submit"

Млин, если с ним не хочется, то пишешь
if(isset($submit)) {
$file = fopen("file.ext", "w");
fputs($file, $var);
fclose($file);
} else {
?>




?>
так лучше? :)
Название: запись из формы в файл
Отправлено: DLama от 29 Ноября 2001, 12:14:06
Цитировать
To Britva


Неее, первый код красивше выглядит.

Получается что запись с восклицательным знаком
if(!isset($submit))
эквивалентна if(empty($submit)) так что ли?
Или я опять чёньто не понял :) ?
Название: запись из формы в файл
Отправлено: Britva от 29 Ноября 2001, 12:29:27
почти эквивалентна :)
empty($var) проверка переменной на пустоту, т.е. она перед этим могла быть установлена в $var = "" и т.п.
а isset проверяет инициализирована ли такая переменная перед этим.
читай мануал.
Название: запись из формы в файл
Отправлено: Макс от 29 Ноября 2001, 14:49:11
Цитировать
empty($var)
Если $var==0 то empty($var) возвращает true. Если бы не эта фича, цены бы empty() не было :(
Название: запись из формы в файл
Отправлено: DLama от 29 Ноября 2001, 20:53:55
Спасибо мужики, просветили :)
Название: запись из формы в файл
Отправлено: DLama от 03 Января 2002, 20:24:13
Как бы сделать так что бы новая запись в файл например с наименованием file.txt делалась с новой строки?

Типа так:

dfr@trtr.ru
dfgh@rambler.ru
fax@yandex.ru
Название: запись из формы в файл
Отправлено: Lion от 03 Января 2002, 20:30:31
добавь \\n в конец строки, например $text.="\\n";
Название: запись из формы в файл
Отправлено: DLama от 03 Января 2002, 20:57:57
Уточни пожалуйста Лео, в конец какой строки добавить
Вот конкретно здесь:

$file = fopen("file.txt", "w");
fputs($file, $var);
fclose($file);
?>

и конкретно здесь:

function form($var) {
?>

">


}

if(!isset($submit)) {
form("");
} else {
if(!$var) {
form($var);
} else {
print "ok";
//тут запись в файл
}
}
?>

Для меня честно говоря совсем непонятно куда можно подоткнуть перевод строки. Разъясните пожалуйста.
Название: запись из формы в файл
Отправлено: Lion от 03 Января 2002, 21:19:38
Цитировать
$file = fopen("file.txt", "w");
fputs($file, $var);
fclose($file);
?>

В данном случае ты открываешь файл в режиме w, т.е. при открытии содержимое файла очищается. Если тебе хочется что то добавлять в конец файла, то надо открывать в a+:
$file=fopen("file.txt","a+");
$var.="\\n";
fputs($file,$var);
fclose($file);
----------------------
Во втором примере то же самое, перед записью в файл к концу $var добавляешь \\n:
Цитировать
....
} else {
if(!$var) {
form($var);
} else {
print "ok";

//тут запись в файл
$file = fopen("file.txt", "a+");
$var.="\\n"; // <<<< вот сюда вставляешь.
fputs($file, $var);
fclose($file);
Название: запись из формы в файл
Отправлено: Dj Fly от 03 Января 2002, 23:37:12
Ещё классно использовать конкатизацию:

$file = fopen("file.txt", "a+");
$var.=$var."\\n";           // <<<< Конкатизация (склеивание)
fputs($file, $var);
Название: запись из формы в файл
Отправлено: Lion от 03 Января 2002, 23:50:43
Цитировать
$var.=$var."\\n";

наверное ты имел ввиду $var=$var."\\n"; ? Тогда это тоже самое что предложил я.
Название: запись из формы в файл
Отправлено: Dj Fly от 04 Января 2002, 00:01:42
Ой, сорьки, проглючил, точку не заметил, когда вырезал...
Стоп, просветите, так что, получается эти вещи равнозначны?

#1
$var.="\\n";

#2
$var=$var."\\n";

???
Получается ".=" здесь работает как префикс? (типа "+=") ???
Название: запись из формы в файл
Отправлено: Lion от 04 Января 2002, 00:09:57
Цитировать
Получается ".=" здесь работает как префикс? (типа "+=") ???

Да.
Название: запись из формы в файл
Отправлено: Dj Fly от 04 Января 2002, 00:17:42
Классно, всё как на Сишнике :-)
Будем знать, спасибо.
Название: запись из формы в файл
Отправлено: Foshvad от 04 Января 2002, 02:36:06
2 Макс:

Как это  true возвращает?!!!
Не може цього бути!

empty вернет false, если переменная пустая, не инициалицирована или ноль.

В вашем случае она ноль, значит вернуть должно faclse :)
Название: запись из формы в файл
Отправлено: Antoxa от 04 Января 2002, 08:31:28
Foshvad
наоборот :)

http://w8.nsk.su/Docs/php/function.empty.html
Название: запись из формы в файл
Отправлено: DLama от 04 Января 2002, 09:53:02
Что то мужики криво как то скрипт работает.
Запись в файл ведётся, только не в такой форме, т.е. последовательно идут адреса в столбик
dfr@trtr.ru
dfgh@rambler.ru
fax@yandex.ru

А записываются вот так в строчку
dfr@trtr.ru[]dfgh@rambler.ru[]fax@yandex.ru[]

т.е. через какой то "квадратик" который я обозначил как []

Ещё такие квадратики я заметил, когда открываю некоторые ява скрипты в блокноте для просмотра. Там такие же квадратики. Ну может конечно не такие а похожие, я не спец конечно, но очень они похожие.

Что за ерунда такая не пойму никак. Можно ли скрипт заставить запись вести нормально?
Название: запись из формы в файл
Отправлено: Foshvad от 04 Января 2002, 11:58:10
2 Antoxa: Действительно, наоборот :)
2 Dlama: попробуй \\r пописать, это если для винды. Кстати, ты чем файл смотришь? Notepad некторые спец символы не понимает
Название: запись из формы в файл
Отправлено: DLama от 04 Января 2002, 19:02:21
Смотрю я Нотепадом и отлаживаю скрипты локально под виндой, а на хостинге они под ФрииБСД, поэтому не знаю как корректно.
Название: запись из формы в файл
Отправлено: Lion от 04 Января 2002, 19:25:17
Цитировать
Смотрю я Нотепадом

А ты не смотри в блокноте,  используй для этого какой-нибудь файловый менеджер far, frigate, etc
Название: запись из формы в файл
Отправлено: DLama от 04 Января 2002, 20:39:48
Заменил \\n на \\r и ничего не изменилось в формате записи в файл.

То Lion
Мне вообщето чем смотреть самому не важно, мне главное чтобы рассылочные проги, которые нормально работают с файлами .txt распознавали посредством знака перевода строки, то что идёт следующий адрес. Короче говоря меня интересует можно ли будет использовать скриптом записанный файл для автомтической обработки рассылочной прогой, например AMS ( http://www.nexus6.ru/AMS376.zip )

И ещё, Лион, подскажи если можеш по регулярным выражениям.
Хочу с их помощью проверить данные вводимые в форму на предмет обязательного наличия хотя бы одной точки и обязательно только одного знака "@"
Не знаю, может велосипед изобретаю я, может какой скрипт есть РНР фришный под такую задачку как подписка и отписка?
Название: запись из формы в файл
Отправлено: Dj Fly от 05 Января 2002, 00:13:49
Попробуй \\0 (ноль)
Название: Попробуй \\0 (ноль)
Отправлено: DLama от 08 Января 2002, 04:03:44
Это даёт вместо перевода строки просто пробел, вот:

dfr@trtr.ru dfgh@rambler.ru fax@yandex.ru