Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: вывод текста в textarea

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
rango2012
Отправлено: 01 Ноября, 2012 - 22:02:14
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Не могу разобраться.
необходимо из файла вывести текст, что-либо в нем изменить и сохранить изменения.
Пишу вот такой код:

PHP:
скопировать код в буфер обмена
  1. <form action="" method="post">
  2.                 <textarea cols="100" rows="10" name="pole">
  3.                         <?PHP
  4.                                 $a=file_get_contents("kniga.txt","r");
  5.                                 echo $a;
  6.                         ?>     
  7.                 </textarea>
  8.                
  9.                 <input type="submit" value="Применить изменения" name="submit"/></p>
  10.                                 <?PHP
  11.                                         $t=$_POST['pole'];
  12.                                         file_put_contents('kniga.txt',$t);     
  13.                                 ?>
  14. </form>


Все выводиться и сохраняется. НО когда я сохраняю файл, после обработки данных мне опять показывает еще не измененный файл, и 2-ое когда обновляется страница, то в textarea перед текстом вставляются какие-то пробелы, прилагаю картинку там эти пробелы видны.
Заранее благодарен за разъяснения.
Прикреплено изображение (Нажмите для увеличения)
file.jpg

(Отредактировано автором: 01 Ноября, 2012 - 22:03:59)

 
 Top
DlTA
Отправлено: 01 Ноября, 2012 - 22:23:49
Post Id



Постоянный участник


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


Помог: 53 раз(а)




rango2012 пишет:
>
                        <?PHP
вот это ваши пробелы

а вот че там в начале было написано я не понял
 
 Top
rango2012
Отправлено: 01 Ноября, 2012 - 22:28:21
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Но я насколько понимаю пробелы в коде не учитываются и браузером не отображаются. Или я не прав?
 
 Top
armancho7777777 Супермодератор
Отправлено: 01 Ноября, 2012 - 22:30:11
Post Id



Активный участник


Покинул форум
Сообщений всего: 4526
Дата рег-ции: Февр. 2011  
Откуда: Москва


Помог: 221 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. <textarea cols="100" rows="10" name="pole"><?=file_get_contents("kniga.txt")?></textarea>
  3.  

PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. if(!empty($_POST['pole']))
  4. {
  5.      $t=$_POST['pole'];
  6.      file_put_contents('kniga.txt',$t);      
  7. }
  8. ?>
  9.  

(Отредактировано автором: 01 Ноября, 2012 - 22:32:53)

 
 Top
DlTA
Отправлено: 01 Ноября, 2012 - 22:45:42
Post Id



Постоянный участник


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


Помог: 53 раз(а)




rango2012 пишет:
Но я насколько понимаю пробелы в коде не учитываются и браузером не отображаются. Или я не прав?
а это пробелы не в php коде а в HTML, а точнее в контенте textarea, вот они и выводятся
 
 Top
Sanches69
Отправлено: 02 Ноября, 2012 - 09:10:38
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




<?PHP
if(!empty($_POST['pole']))
file_put_contents('kniga.txt',$_POST['pole']);
?>

(=
 
 Top
rango2012
Отправлено: 02 Ноября, 2012 - 10:14:06
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Спасибо всем кто откликнулся, с пробелами я разобрался, осталась проблемка с обновлением.

вот код

PHP:
скопировать код в буфер обмена
  1. <body>
  2.        
  3.                 <form action="" method="post">
  4.                     <textarea cols="100" rows="10" name="pole"><?PHP
  5.                            
  6.                                     $a=file_get_contents("kniga.txt","r");
  7.                                     echo $a;
  8.                             ?>    
  9.                     </textarea>
  10.                    
  11.                     <input type="submit" value="Применить изменения" name="submit"/></p>
  12.                                     <?PHP
  13.                                            if(!empty($_POST['pole']))
  14.                                                                                                 {       $t=$_POST['pole'];
  15.                                                                                                         file_put_contents('kniga.txt',$t);
  16.                                                                                                 }  
  17.                                     ?>
  18.                 </form>
  19.         </body>


После нажатия на кнопку для обработки записи в файл, в textarea отображается предыдущий не измененный файл, но после того как я обновляю страницу все отображается как надо.
Может можно как-то обновить информацию отображающуюся в textarea или автоматом запустить обновление страницы? Не знаю как правильно и корректно это сделать. Прикрепляю фото того что происходит для большей наглядности
Прикреплено изображение (Нажмите для увеличения)
1.jpg
 
 Top
halsoft
Отправлено: 02 Ноября, 2012 - 10:29:54
Post Id



Гость


Покинул форум
Сообщений всего: 94
Дата рег-ции: Нояб. 2012  
Откуда: The Land of Chechens


Помог: 3 раз(а)




В файл нужно записать прежде, чем вы его прочитаете. У вас же сначала происходит чтение, а потом уже запись, поэтому при первом нажатии на кнопку отображается старый текст.

Делайте так

PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $t=$_POST['pole'];
  4.  
  5. if(!empty($t)) file_put_contents('kniga.txt',$t);
  6. ?>
  7. <body>
  8.                 <form action="" method="post">
  9.                     <textarea cols="100" rows="10" name="pole"><?=file_get_contents("kniga.txt","r");?></textarea>
  10.                    
  11.                     <input type="submit" value="Применить изменения" name="submit"/></p>
  12.                 </form>
  13.         </body>


Совет: не вводите переменные, если они не несут никакой пользы. В данном случае, у вас было 2 переменных $t и $a. Вторая переменная, скорее всего, нигде больше не используется, поэтому содержание файла лучше всего сразу вывести, чем сохранять его в переменной и выводить эту переменную. Так же и с первой переменной. Вы присвоили ей значение и использовали ее только один раз, никакой информации эта переменная в себе не несла, также она и не сокращала код, даже наоборот.
Заметьте, я использовал эту переменную, чтобы два раза не писать $_POST['pole']. Уже видна целесообразность, хоть и не большая польза.
Резюмируя, используйте переменные только там, где это нужно.

(Отредактировано автором: 02 Ноября, 2012 - 10:41:16)



-----
Хорошие дела улучшают настроение, делают жизнь счастливей, а людей человеками.
 
 Top
rango2012
Отправлено: 02 Ноября, 2012 - 10:58:12
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Нояб. 2012  


Помог: 0 раз(а)




Ура заработало!

Вот так написал
PHP:
скопировать код в буфер обмена
  1. <body>
  2.                                 <?PHP
  3.                                 $t=$_POST['pole'];
  4.                                 if(!empty($t)) file_put_contents('kniga.txt',$t);
  5.                                 ?>
  6.                
  7.                                 <form action="" method="post">
  8.                     <textarea cols="100" rows="10" name="pole"><?PHP
  9.                                                                                                                                         echo file_get_contents("kniga.txt","r");
  10.                                         ?></textarea>
  11.                     <input type="submit" value="Применить изменения" name="submit"/></p>
  12.                 </form>
  13.         </body>


Всем большое спасибо
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB