|
|
|
| Есть скрипт, который сохраняет текст из textarea в файлы, форматы которых выбираются выпадающим списком. Нумерация файлов начинается со значения, которое записано в файле "index".
Нужно сделать так, чтобы была возможность выбора (например, выпадающим списком) сохранять в новый файл(w+) или дописывать в последний созданный(a+). Есть какие идеи? Подскажите, пожалуйста.
<?php
$source = $_POST['source'];//имя textarea, из которого берется текст
$triad = $_POST['triad'];//расширение, с которым будет сохранен файл (в выпадающем списке)
$fh = fopen("./SMI/index",'r');//в этом файле находится число, с которого начинается нумерация
$i = fgets($fh);
fclose($fh);
$fh = fopen("./SMI/index",'w');
$i++;
fputs($fh, $i);
fclose($fh);
$file = $i.".".$triad;
$Saved_file = fopen("./SMI/".$file, 'w+');//директория для записи
fwrite($Saved_file, $source);
fclose($Saved_file);
header("Location: index.php");
?>
|
| |
|
|
|
|
|
|
|
для: YU351
(18.09.2009 в 23:49)
| | Есть какие идеи?
Идея одна - вы играете с огнём сидя на пороховой бочке, хотябы по причине того что не используете блокировки файлов. Да и w+ крайне опасный "перец".
Хотя если с этим сриптом работает только один пользователь, то "можно" и так.
Опишите подробнее, что за файлы такие и почему их нельзя тупо загрузить на сервер? | |
|
|
|
|
|
|
|
для: Valick
(18.09.2009 в 23:56)
| | Это клиент-серверное приложение, суть которого в том, что пользователи заполняя определенные поля на странице, в итоге генерируют текстовое сообщение в textarea на этой странице. После этого, созданное сообщение необходимо сохранить на сервер (из texarea в файл). Так вот необходимо, чтобы сохраняя сообщение, они могли не только создавать каждый раз новый документ (что реализовано выше приведенным скриптом), но и сохранять (дописывать) сообщения в файл, который был создан до этого (т.е. последним). | |
|
|
|
|
|
|
|
для: YU351
(19.09.2009 в 00:18)
| | а к чему вот это:
$triad = $_POST['triad'];//расширение, с которым будет сохранен файл (в выпадающем списке)
|
?
кстати, таким же "Макаром" можно выбирать w+ или a+
дописывать можно только в последний файл?
В любом случае при таком подходе (без блокировок) у вас случаться два "одновременных" юзера, и плакали ваши денюжки данные.
Вообще тут база данных прямо-таки и просится с которой работать в 100 раз легче и удобнее, чем с файлами. | |
|
|
|
|
|
|
|
для: Valick
(19.09.2009 в 00:53)
| | >Вообще тут база данных прямо-таки и просится с которой работать в 100 раз легче и удобнее, чем с файлами.
Полностью согласен. Но руки связаны на файлах, ибо такоя задача и не шагнуть от нее ни вправо, ни влево.
>а к чему вот это:
>
$triad = $_POST['triad'];//расширение, с которым будет сохранен файл (в выпадающем списке)
|
>?
Так вот я выбираю с каким расширением сохранить тот или иной файл (txt, doc, xml, smi).
Как же поставить блокировки? Буду признателен, если покажите. | |
|
|
|
|
|
|
|
для: YU351
(19.09.2009 в 01:05)
| | дык былоб всё просто то уже бы написал, тут подумать надо :)
в нумерации из файла есть какой-то определённый смысл? Просто расскажите зачем это, чтобы мне легче завтра было думать над расстановкой блокировок.
и прикрепите код формы
____
мучают меня вопросы почему дописывать можно только в последний файл(!), кому можно дописывать, когда можно дописывать, если уж выбираете расширение (кстати никак не проверенное на стороне сервера), то почему такие странные имена (как я понял это числа из файла) и т.д. | |
|
|
|
|
|
|
|
для: Valick
(19.09.2009 в 01:41)
| | Смысл нумерации в том, что она должна быть по порядку (01.txt, 02.txt, ...).
<form name="FormPopUp" action="save.php" method="post">
<table width="98%" border="0" cellspacing="0" cellpading="0">
<tr>
<td colspan="4" align="left">
<table border="0" cellspacing="0" cellpading="0">
<tr>
<td align="center" width="220">
</td>
<td width="364"> </td>
<td align="left" width="575">
<input type="submit" value="Сохранить сообщение СМИ" onMouseOver="style.color='blue'" onMouseOut="style.color='black'" style="cursor:pointer;"/>
<select name="triad">
<option>txt</option>
<option>xml</option>
<option>smi</option>
<option>doc</option>
</select>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="right">
</td>
<td colspan="2" align="left">
<!--********************* ВЫХОДНОЙ TEXTAREA *****************************-->
<textarea name="source" rows="15" cols="70%" style="background-color: #14BAD8"></textarea>
<!--********************* ВЫХОДНОЙ TEXTAREA *****************************-->
</td>
</tr>
</table>
</form>
|
| |
|
|
|
|
|
|
|
для: YU351
(19.09.2009 в 07:33)
| | Смысл нумерации в том, что она должна быть по порядку (01.txt, 02.txt, ...)
01.txt, 02.txt, 03.xml, 04.doc? | |
|
|
|
|
|
|
|
для: YU351
(19.09.2009 в 07:33)
| | вот что у меня получилось, скорее всего где-нить в логике ошибся(нужно тестировать), но пока работает
файл form.html
<form name="FormPopUp" action="save.php" method="post">
<table width="98%" border="0" cellspacing="0" cellpading="0">
<tr>
<td colspan="4" align="left">
<table border="0" cellspacing="0" cellpading="0">
<tr>
<td align="center" width="220">
</td>
<td width="364"> </td>
<td align="left" width="575">
<input type="submit" name="save" value="Сохранить сообщение СМИ"
onMouseOver="style.color='blue'" onMouseOut="style.color='black'" style="cursor:pointer;"/>
<select name="triad">
<option value="0">txt</option>
<option value="1">xml</option>
<option value="2">smi</option>
<option value="3">doc</option>
</select>
<br />
<input type="submit" name="add" value="Добавить к последнему файлу"
onMouseOver="style.color='blue'" onMouseOut="style.color='black'" style="cursor:pointer;"/>
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="right">
</td>
<td colspan="2" align="left">
<!--********************* ВЫХОДНОЙ TEXTAREA *****************************-->
<textarea name="source" rows="15" cols="70%" style="background-color: #14BAD8"></textarea>
<!--********************* ВЫХОДНОЙ TEXTAREA *****************************-->
</td>
</tr>
</table>
</form>
|
файл обработчик save.php
<?php
// Принимаем и обрабатываем сообщение из TEXTAREA
if(isset($_POST[source])&& !empty($_POST[source])){
$source = trim($_POST[source]);
// Удаляем ненужные переводы строк
$source = preg_replace("/[\r\n]{2,}/i", "\n", $source);
// Ограничение количества вводимых символов
$source = substr($source,0,1024);
if(isset($_POST[add])){
// Нажата кнопка добавления записи к последнему сохранённому файлу
// Считываем имя последнего сохранённого файла из last.txt
if(file_exists('last.txt')){
// Открываем файл для чтения и записи в режиме r+t
// некоторые версии FreeBSD имеют проблемы с режимом а+
// и не могут установить указатель на начало файла при помощи fseek
$f1=fopen('last.txt', 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f1, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
// Файл заблокирован, можно производить чтение и запись
// считываем имя последнего сохранённого файла
$file=explode("\n",fread($f1,filesize('last.txt')));
if(file_exists($file[0])){
$f2=fopen($file[0], 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f2, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
$position = filesize($file[0]);
fseek($f2, $position-1);
fwrite ($f2,$source."\n") ;
fclose($f1);
fclose($f2);
}
}else{
echo "Отсутствует файл содержащий информацию о последнем сохранённом файле.";
}
}
if(isset($_POST[save])){
// Нажата кнопка добавления записи в новый файл
switch ($_POST[triad]) {
case 0: $triad='txt'; break;
case 1: $triad='xml'; break;
case 2: $triad='smi'; break;
case 3: $triad='doc'; break;
default: $triad='txt';
}
// Считываем счётчик нумерации из count.txt
if(file_exists('count.txt')){
$f1=fopen('count.txt', 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f1, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
// Файл заблокирован, можно производить чтение и запись
// считываем счётчик
$n=explode("\n",fread($f1,filesize('last.txt')));
$new=$n[0]+1;
$file=($new).".$triad";
ftruncate($f1, 0); // очищаем файл
fseek($f1, 0, SEEK_SET); // переходим в начало файла
fwrite ($f1, $new) ; // записываем строку из массива
if(!file_exists($file)){
fclose(fopen($file, "a+t"));
$f2=fopen($file, 'r+t') or die("Невозможно открыть файл");
fputs ($f2,$source."\n") ;
fclose($f2);
fclose($f1);
if(file_exists('last.txt')){
$f3=fopen('last.txt', 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f3, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
ftruncate($f3, 0); // очищаем файл
fseek($f3, 0, SEEK_SET); // переходим в начало файла
fwrite ($f3, $file) ; // записываем строку из массива
fclose($f3);
}else{
echo "Отсутствует файл содержащий информацию о последнем сохранённом файле.";
}
}else{
echo "Фйл с таким именем уже существует";
exit;
}
}else{
echo "Отсутствует файл счётчика.";
}
}
}else{
echo "Отсутствует текстовое сообщение";
}
?>
|
| |
|
|
|
|
|
|
|
для: Valick
(19.09.2009 в 15:20)
| | . | |
|
|
|
|
|
|
|
для: YU351
(19.09.2009 в 07:33)
| | кстати на счёт кода формы...
<form name="FormPopUp" action="save.php" method="post">
<table border="0" cellspacing="0" cellpading="0">
<tr><td>
<table border="0" cellspacing="0" cellpading="0">
<tr>
<td>
<!--********************* ВЫХОДНОЙ TEXTAREA *****************************-->
<textarea name="source" rows="15" cols="70%" style="background-color: #14BAD8"></textarea>
<!--********************* ВЫХОДНОЙ TEXTAREA *****************************-->
</td>
</tr>
</table>
<table width="100%" border="0" cellspacing="0" cellpading="0">
<tr>
<td align="left">
<input type="submit" name="save" value="Сохранить сообщение СМИ"
onMouseOver="style.color='blue'" onMouseOut="style.color='black'" style="cursor:pointer;"/>
<select name="triad">
<option value="0">txt</option>
<option value="1">xml</option>
<option value="2">smi</option>
<option value="3">doc</option>
</select>
</td>
<td align="right">
<input type="submit" name="add" value="Добавить к последнему файлу"
onMouseOver="style.color='blue'" onMouseOut="style.color='black'" style="cursor:pointer;"/>
</td>
</tr>
</table>
</td></tr>
</form>
|
? :) | |
|
|
|
|
|
|
|
для: Valick
(19.09.2009 в 19:53)
| | Valick, спасибо большое за помощь!!!! :) | |
|
|
|
|
|
|
|
для: YU351
(20.09.2009 в 15:20)
| | ну честно говоря не за что.
добавляться информация будет в последний сохранённый файл это точно, но вот который это будет файл точно вам никто не скажет, так как пока вы набираете текст кто-то другой может сохранить свой файл и он уже будет считаться последним :) | |
|
|
|
|
|
|
|
для: Valick
(20.09.2009 в 17:20)
| | Появилась проблема с кодировкой. Мне кажется, это из-за php. Скрипт сохраняет в файл кавычки вот таким образом:
<?xml version=\"1.0\" encoding=\"windows-1251\"?>
|
Хотя, в textarea до сохранения эта строчка выглядит иначе:
<?xml version="1.0" encoding="windows-1251"?>
|
Кодировка на странице:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
|
Есть у кого идеи, в чем дело? | |
|
|
|
|
|
|
|
для: YU351
(25.09.2009 в 23:44)
| | вероятно, пресловутые magic_quotes_gpc | |
|
|
|
|
|
|
|
для: Gemorroj
(26.09.2009 в 12:10)
| | >вероятно, пресловутые magic_quotes_gpc
Ага.. Не имеющие при этом никакого отношения к кодировке. Ну просто никакого. | |
|
|
|
|
|
|
|
для: Trianon
(26.09.2009 в 12:35)
| | Gemorroj имел в виду экранирование кавычек в строке meta после textarea. | |
|
|
|
|
|
|
|
для: cheops
(26.09.2009 в 13:13)
| | >Gemorroj имел в виду экранирование кавычек в строке meta после textarea.
Так и есть, наверняка. Я, собственно, с ним и не спорю.
Собственно, не только в строке meta | |
|
|
|
|
|
|
|
для: YU351
(25.09.2009 в 23:44)
| | Наверняка дело в этом, пропустите содержимое файла перед сохранением через конструкцию вида
<?php
if (get_magic_quotes_gpc())
{
$text = stripslashes($text);
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(26.09.2009 в 13:17)
| | Да, это выход. Сработало.
Вот только не могу поменять директорию для сохранения. Файлы last и count лежат в папке SMI. Везде в коде, вроде бы, добавил ./SMI, но все равно, файлы сохраняются в директорию где находится сам файл php. Мож кто разобрался?
<?php
// Принимаем и обрабатываем сообщение из TEXTAREA
if(isset($_POST[source])&& !empty($_POST[source])){
$source = trim(stripslashes($_POST[source]));
// Удаляем ненужные переводы строк
$source = preg_replace("/[\r\n]{2,}/i", "\n", $source);
// Ограничение количества вводимых символов
$source = substr($source,0,3024);
if(get_magic_quotes_gpc()) {
}
if(isset($_POST[add])){
// Нажата кнопка добавления записи к последнему сохранённому файлу
// Считываем имя последнего сохранённого файла из last.txt
if(file_exists('./SMI/last')){
// Открываем файл для чтения и записи в режиме r+t
// некоторые версии FreeBSD имеют проблемы с режимом а+
// и не могут установить указатель на начало файла при помощи fseek
$f1=fopen('./SMI/last', 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f1, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
// Файл заблокирован, можно производить чтение и запись
// считываем имя последнего сохранённого файла
$file=explode("\n",fread($f1,filesize('./SMI/last')));
if(file_exists($file[0])){
$f2=fopen($file[0], 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f2, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
$position = filesize($file[0]);
fseek($f2, $position-1);
fwrite ($f2,$source."\r\n") ;
fclose($f1);
fclose($f2);
header("Location: index.php");
}
}else{
echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует файл содержащий информацию о последнем сохранённом файле!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
}
}
if(isset($_POST[save])){
// Нажата кнопка добавления записи в новый файл
switch ($_POST[triad]) {
case 0: $triad='txt'; break;
case 1: $triad='xml'; break;
case 2: $triad='smi'; break;
case 3: $triad='doc'; break;
default: $triad='txt';
}
// Считываем счётчик нумерации из count.txt
if(file_exists('./SMI/count')){
$f1=fopen('./SMI/count', 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f1, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
// Файл заблокирован, можно производить чтение и запись
// считываем счётчик
$n=explode("\r\n",fread($f1,filesize('./SMI/last')));
$new=$n[0]+1;
$file=($new).".$triad";
ftruncate($f1, 0); // очищаем файл
fseek($f1, 0, SEEK_SET); // переходим в начало файла
fwrite ($f1, $new) ; // записываем строку из массива
if(!file_exists($file)){
fclose(fopen($file, "a+t"));
$f2=fopen($file, 'r+t') or die("Невозможно открыть файл");
fputs ($f2,$source."\r\n") ;
fclose($f2);
fclose($f1);
header("Location: index.php");
if(file_exists('./SMI/last')){
$f3=fopen('./SMI/last', 'r+t') or die("Невозможно открыть файл");
// Блокируем файл (блокировка с запретом "подвисания")
while(!flock($f3, LOCK_EX+LOCK_NB))
{
sleep(1); // ждём одну секунду
}
ftruncate($f3, 0); // очищаем файл
fseek($f3, 0, SEEK_SET); // переходим в начало файла
fwrite ($f3, $file) ; // записываем строку из массива
fclose($f3);
}else{
echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует файл содержащий информацию о последнем сохранённом файле!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
}
}else{
echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Фйл с таким именем уже существует!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
exit;
}
}else{
echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует файл счётчика!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
}
}
}else{
echo "<center><table border=0 bgcolor=#5B6A90><tr><td><font color=#ffffff style=\"font-family:Arial, Helvetica, sans-serif; font-size:13px;\"><b>Отсутствует текстовое сообщение!!!</b></font>
</td>
</tr>
<tr>
<td align=center>
<input type=button name=back value=Назад onclick=\"history.back();\" onMouseOver=\"style.color='blue'\" onMouseOut=\"style.color='black'\" style=\"cursor:pointer;\">
</td>
</tr>
</table></center>";
}
?>
|
| |
|
|
|
|
|
|
|
для: YU351
(28.09.2009 в 23:15)
| | у меня похожая ситуация тока по проще, у меня не получается совместить код со своим, поможете? есть форма в конце 2 кнопки,"сохранить" и "далее", в кнопке cохранить использую triad,имя файла в котором будут сохранены данные, а "далее" открывает другую страницу и данные страницы нужно сохранить в файл созданный на 1ой странице.Файл которую я создала на 1 стр.сохраняются только в формате doc.
<h3 >7. На основании изложенного, документация является <textarea Name="sootv" ROWS=3 COLS=100> </textarea> <br><input type="submit" name="add" value="Добавить и завершить">
| ммм...php код не получается | |
|
|
|
|
|
|
|
для: Calisto09
(19.05.2012 в 12:30)
| | Глубоко вспахано.)
>а "далее" открывает другую страницу и данные страницы нужно сохранить в файл созданный на 1ой странице
Страница, это страница у клиента, о сохранении чего идет речь? | |
|
|
|
|
|
|
|
для: confirm
(19.05.2012 в 14:09)
| | это продолжение 1-ой страницы, и поверьте мне в моем случае так и должно быть, речь о тексте в textarea. На 2-ой стр.также заполняемые поля, и они должны дописаться в конец | |
|
|
|
|
|
|
|
для: Calisto09
(19.05.2012 в 16:59)
| | Если бы речь шла о записи именно страницы, то ее, еще раз повторяю, именно страницу, можно сохранить только единственным способом - вставить в форму ее содержимое, как document.body.innerHTML. Это и будет страница - полный ее html-код.
Если речь идет все-таки о содержимом переданным формой, которое к самой странице никакого отношения не имеет, то так и говорите.
Если вам надо добавить в конец существующего файла новые данные, то это делается функциями fopen(), fwrite() о чем в данной теме говорилось. В чем проблема тогда?
Не понятно только, если на некой странице вы открываете файл, что-то в него записываете, то зачем нужен переход на другую страницу, чтобы дописать в него еще что-то? | |
|
|
|
|
|
|
|
для: confirm
(19.05.2012 в 17:37)
| | "Если вам надо добавить в конец существующего файла новые данные, то это делается функциями fopen(), fwrite() о чем в данной теме говорилось. В чем проблема тогда?", у меня не получается совместить этот код со своим, вот фрагментик кода:
first.htm, здесь в конце есть форма где я пишу названия файла и кнопкой "сохранить" сохраняю данные,
<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"> Далее </b></A>
| , и его обработчик
<?
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-я кнопка "далее", он открывает 2-ю стр.,после заполнения которой, данные нужно сохранить в файле, созданный на 1 стр.,primer.htm
<html>
<FORM name="pr" method="post" action= "primer.php" >
<h3 align=left>7. На основании изложенного, документация программного средства на <br> <textarea Name="sootv" ROWS=3 COLS=100> </textarea> <br>
<form><input type="submit" name="add" value="Добавить к последнему файлу">
</html>
| , помогите написать код primer.php??? | |
|
|
|
|
|
|
|
для: Calisto09
(20.05.2012 в 17:57)
| | На кашмарик похоже )
Если вы единолично имеете доступ к файлу, еще можно так производить запись, если нет, то нужно блокировать файл. Как у вас?
Расширение обычного текстового файла .txt. Какие еще расширения вам нужны, что возникла необходимость указывать его формой?
Если даже и хранить в файле количество файлов, то разве нельзя при сохранении данных выполнить то, что выполняет ваш скрипт - увеличить счетчик, и под этим именем сохранить данные в файле. Чем обусловлена необходимость разделения этих операций?
Почему бы данные не хранить в базе? | |
|
|
|
|