Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Способы сохранения текста из textarea

Сообщения:  [1-10]    [11-20]  [21-26] 

 
 автор: confirm   (20.05.2012 в 18:15)   письмо автору
 
   для: Calisto09   (20.05.2012 в 17:57)
 

На кашмарик похоже )
Если вы единолично имеете доступ к файлу, еще можно так производить запись, если нет, то нужно блокировать файл. Как у вас?
Расширение обычного текстового файла .txt. Какие еще расширения вам нужны, что возникла необходимость указывать его формой?
Если даже и хранить в файле количество файлов, то разве нельзя при сохранении данных выполнить то, что выполняет ваш скрипт - увеличить счетчик, и под этим именем сохранить данные в файле. Чем обусловлена необходимость разделения этих операций?
Почему бы данные не хранить в базе?

  Ответить  
 
 автор: Calisto09   (20.05.2012 в 17:57)   письмо автору
 
   для: 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">&nbsp;&nbsp; Далее&nbsp;&nbsp;&nbsp;</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???

  Ответить  
 
 автор: confirm   (19.05.2012 в 17:37)   письмо автору
 
   для: Calisto09   (19.05.2012 в 16:59)
 

Если бы речь шла о записи именно страницы, то ее, еще раз повторяю, именно страницу, можно сохранить только единственным способом - вставить в форму ее содержимое, как document.body.innerHTML. Это и будет страница - полный ее html-код.
Если речь идет все-таки о содержимом переданным формой, которое к самой странице никакого отношения не имеет, то так и говорите.
Если вам надо добавить в конец существующего файла новые данные, то это делается функциями fopen(), fwrite() о чем в данной теме говорилось. В чем проблема тогда?
Не понятно только, если на некой странице вы открываете файл, что-то в него записываете, то зачем нужен переход на другую страницу, чтобы дописать в него еще что-то?

  Ответить  
 
 автор: Calisto09   (19.05.2012 в 16:59)   письмо автору
 
   для: confirm   (19.05.2012 в 14:09)
 

это продолжение 1-ой страницы, и поверьте мне в моем случае так и должно быть, речь о тексте в textarea. На 2-ой стр.также заполняемые поля, и они должны дописаться в конец

  Ответить  
 
 автор: confirm   (19.05.2012 в 14:09)   письмо автору
 
   для: Calisto09   (19.05.2012 в 12:30)
 

Глубоко вспахано.)

>а "далее" открывает другую страницу и данные страницы нужно сохранить в файл созданный на 1ой странице

Страница, это страница у клиента, о сохранении чего идет речь?

  Ответить  
 
 автор: Calisto09   (19.05.2012 в 12:30)   письмо автору
 
   для: 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 код не получается

  Ответить  
 
 автор: YU351   (28.09.2009 в 23:15)   письмо автору
 
   для: 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($f1LOCK_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($f2LOCK_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($f1LOCK_EX+LOCK_NB))
            {
            
sleep(1);    // ждём одну секунду
            
}
    
// Файл заблокирован, можно производить чтение и запись
    // считываем счётчик
    
$n=explode("\r\n",fread($f1,filesize('./SMI/last')));
    
$new=$n[0]+1;
     
$file=($new).".$triad";
         
ftruncate($f10); // очищаем файл
         
fseek($f10SEEK_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($f3LOCK_EX+LOCK_NB))
            {
            
sleep(1);    // ждём одну секунду
            
}
         
ftruncate($f30); // очищаем файл
         
fseek($f30SEEK_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>"
;
}
?>

  Ответить  
 
 автор: Trianon   (26.09.2009 в 13:25)   письмо автору
 
   для: cheops   (26.09.2009 в 13:13)
 

>Gemorroj имел в виду экранирование кавычек в строке meta после textarea.

Так и есть, наверняка. Я, собственно, с ним и не спорю.
Собственно, не только в строке meta

  Ответить  
 
 автор: cheops   (26.09.2009 в 13:17)   письмо автору
 
   для: YU351   (25.09.2009 в 23:44)
 

Наверняка дело в этом, пропустите содержимое файла перед сохранением через конструкцию вида
<?php
      
if (get_magic_quotes_gpc())
      {
        
$text stripslashes($text);
      }
?>

  Ответить  
 
 автор: cheops   (26.09.2009 в 13:13)   письмо автору
 
   для: Trianon   (26.09.2009 в 12:35)
 

Gemorroj имел в виду экранирование кавычек в строке meta после textarea.

  Ответить  

Сообщения:  [1-10]    [11-20]  [21-26] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования