Strict Standards: Resource ID#18 used as offset, casting to integer (18) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#23 used as offset, casting to integer (23) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#25 used as offset, casting to integer (25) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#26 used as offset, casting to integer (26) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Запись в файл [2]
ТвойWeb ТвойWeb
Качественный Европейский хостинг
Форум для чайников
 Чат на форуме      Помощь      Поиск      Пользователи


 Страниц (2): « 1 [2]   

> Без описания
lan
Отправлено: 04 Февраля, 2006 - 13:17:54
Post Id


лунатик


Покинул форум
Сообщений всего: 396
Дата рег-ции: Апр. 2005  
Откуда: vrn

Карма -1




Digital man 53 пишет:
: если твой скрипт будет использоваться кем-то, кроме тебя, то срочно его перепиши, т.к., если смотреть по минимуму, - у тебя не проверяется существование переменной.

да не в этом дело, мне нужно понять как это можно сделать на основе данного срипта, ну и конечно не помешал бы пример.
ETC пишет:
Digital man 53
Ключ «w» не позволяет читать файлы, он их обнуляет.

вот именно!

а ключ 'f+' пишет поверх имеющихся.
 
 Top
ETC Администратор
Отправлено: 05 Февраля, 2006 - 09:12:33
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




f+? Может a+? Тогда до кучи юзай fseek
Вообще можно так:
CODE:
<?

$file = fopen("text.dat", "a+");
$tmp = fread($file,filesize($file));
fseek($file,0); // можно rewind($file);
fwrite ($file, $add."\n".$tmp);
fclose ($file);

header("location: index.php");
?>

Писать будет поверх данных... Но, т.к. мы прочитали старые, и суммарно данных будет больше, то мы затрём старые данные полностью... Если же ситуация другая и данных будет меньше, то придётся файл сначала открывать на чтение, потом открывать на запись с ключом w...
 
 Top
lan
Отправлено: 05 Февраля, 2006 - 10:39:20
Post Id


лунатик


Покинул форум
Сообщений всего: 396
Дата рег-ции: Апр. 2005  
Откуда: vrn

Карма -1




ETC пишет:
f+? Может a+?

ну да =)

в принципе, понятно, короче, я разобрался нашел в одном учебнике подобный пример, как можно реалезовать то, что мне нужно, в общеем, вот если кому будет нужно:
CODE:
<?
$logdata .= "$add";
$logdata .= "\n". join ("", file("text.dat"));

$fp = fopen("text.dat", "w");
flock($fp, 1);
fwrite($fp, $logdata);
flock($fp, 3);
fclose($fp);

header("location: index.php");
?>
 
 Top
ETC Администратор
Отправлено: 05 Февраля, 2006 - 11:59:35
Post Id



Flash-coder


Покинул форум
Сообщений всего: 5275
Дата рег-ции: Дек. 2003  
Откуда: TimeZero

Карма 26




Ну открытие файла сначала на чтение, потом на запись... Не самый лучший вариант, но рабочий.
 
 Top
lan
Отправлено: 05 Февраля, 2006 - 12:47:00
Post Id


лунатик


Покинул форум
Сообщений всего: 396
Дата рег-ции: Апр. 2005  
Откуда: vrn

Карма -1




теперь еще один вопросик:
создал еще один файл text2.dat, попытался сделать выбор записи или в text.dat или text2.dat? в index.php добавил две формы:

CODE:
<input type="checkbox" name="edit" value="true"/>
<input type="checkbox" name="edit2" value="true"/>

в action.php
дополнил код:
CODE:
<?
if ($edit)
{
$logdata .= "$add";
$logdata .= "\n". join ("", file("text.dat"));

$fp = fopen("text.dat", "w");
flock($fp, 1);
fwrite($fp, $logdata);
flock($fp, 3);
fclose($fp);

}
else
if ($edit2)
{
$$logdata .= "$add";
$logdata .= "\n". join ("", file("text2.dat"));

$fp = fopen("text2.dat", "w");
flock($fp, 1);
fwrite($fp, $logdata);
flock($fp, 3);
fclose($fp);
}

header("location: index.php");
?>

вроде работает, записывает, но все время выдает разные ошибки, то $edit не определена, то еще что-то, посмотрите, в чем ошибка?
и еще, как можно сделать в форме, чтобы можно было выбирать только один вариант? если через radio?
 
 Top
SviMik Супермодератор
Отправлено: 05 Февраля, 2006 - 13:10:20
Post Id



Где-то там...


Покинул форум
Сообщений всего: 3538
Дата рег-ции: Окт. 2004  
Откуда: Tallinn, Estonia

Карма 4




CODE:

<input type="radio" checked name="file" value="1"><BR>
<input type="radio" name="file" value="2">


CODE:

if($file==1){
$file_to_write='text.dat';
}elseif($file==2){
$file_to_write='text2.dat';
}else{
die('Error!');
}


$logdata .= "$add";
$logdata .= "\n". join ("", file($file_to_write));

$fp = fopen("$file_to_write", "w");
flock($fp, 1);
fwrite($fp, $logdata);
flock($fp, 3);
fclose($fp);

header("location: index.php");
 
 Top
lan
Отправлено: 05 Февраля, 2006 - 13:49:27
Post Id


лунатик


Покинул форум
Сообщений всего: 396
Дата рег-ции: Апр. 2005  
Откуда: vrn

Карма -1




SviMikспасибо!
 
 Top
Страниц (2): « 1 [2]
Сейчас эту тему просматривают: 3 (гостей: 3, зарегистрированных: 0, скрытых: 0)
« PHP/Perl »


Все гости форума могут просматривать этот раздел.
Только администраторы и модераторы могут создавать новые темы в этом разделе.
Только администраторы и модераторы могут отвечать на сообщения в этом разделе.
 



Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0435]     [ Gzipped ]



Notice: ob_end_flush(): failed to send buffer of ob_gzhandler (1) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/page_tail.php on line 33