|
|
|
|
|
для: Calisto09
(20.05.2012 в 17:57)
| | На кашмарик похоже )
Если вы единолично имеете доступ к файлу, еще можно так производить запись, если нет, то нужно блокировать файл. Как у вас?
Расширение обычного текстового файла .txt. Какие еще расширения вам нужны, что возникла необходимость указывать его формой?
Если даже и хранить в файле количество файлов, то разве нельзя при сохранении данных выполнить то, что выполняет ваш скрипт - увеличить счетчик, и под этим именем сохранить данные в файле. Чем обусловлена необходимость разделения этих операций?
Почему бы данные не хранить в базе? | |
|
|
|
|
|
|
|
для: 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
(19.05.2012 в 16:59)
| | Если бы речь шла о записи именно страницы, то ее, еще раз повторяю, именно страницу, можно сохранить только единственным способом - вставить в форму ее содержимое, как document.body.innerHTML. Это и будет страница - полный ее html-код.
Если речь идет все-таки о содержимом переданным формой, которое к самой странице никакого отношения не имеет, то так и говорите.
Если вам надо добавить в конец существующего файла новые данные, то это делается функциями fopen(), fwrite() о чем в данной теме говорилось. В чем проблема тогда?
Не понятно только, если на некой странице вы открываете файл, что-то в него записываете, то зачем нужен переход на другую страницу, чтобы дописать в него еще что-то? | |
|
|
|
|
|
|
|
для: confirm
(19.05.2012 в 14:09)
| | это продолжение 1-ой страницы, и поверьте мне в моем случае так и должно быть, речь о тексте в textarea. На 2-ой стр.также заполняемые поля, и они должны дописаться в конец | |
|
|
|
|
|
|
|
для: Calisto09
(19.05.2012 в 12:30)
| | Глубоко вспахано.)
>а "далее" открывает другую страницу и данные страницы нужно сохранить в файл созданный на 1ой странице
Страница, это страница у клиента, о сохранении чего идет речь? | |
|
|
|
|
|
|
|
для: 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 код не получается | |
|
|
|
|
|
|
|
для: 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>";
}
?>
|
| |
|
|
|
|
|
|
|
для: 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);
}
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(26.09.2009 в 12:35)
| | Gemorroj имел в виду экранирование кавычек в строке meta после textarea. | |
|
|
| |
|