Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Вебмастеру (http://forum.oszone.net/forumdisplay.php?f=22)
-   -   [решено] Сохранение текста в PHP. (http://forum.oszone.net/showthread.php?t=105667)

DaRiYs 24-04-2008 11:29 788085

Сохранение текста в PHP.
 
Дано: форма в которую вводится текст. Форма должна сохранять текст в файл. Но у меня перед спец. символами всегда дописываются слеши. А если есть парные кавычки " " или скобки ( ) то вобще не сохраняется. Как сохранить текс, так как он вводится?

rus-4-ever 24-04-2008 13:33 788181

Попробуй воспользоватся функциями: addslashes(str) При отправке формы и stripslashes(str) при принятии формы...

DaRiYs 24-04-2008 14:12 788221

Хорошо. А если у меня будут введены слеши их функция stripslashes(str) тоже ведь поудаляет?

bruder 24-04-2008 15:14 788280

не надо addslashes, просто так пашет

PHP код:

$a fopen('1.txt''w');
fwrite($astripslashes($_POST['text'])); 


DaRiYs 24-04-2008 16:35 788344

А stripslashes(str) не удалит слеши которые введены в форму? И как побороть то что если есть парные кавычки " " или скобки ( ) то текст в файл вобще не сохраняется?

bruder 24-04-2008 16:58 788369

проверил перед тем как постить, все пашет. Давай код посмотреть

DaRiYs 24-04-2008 18:11 788427

PHP код:

$file=fopen("input.txt","w");
fwrite($file,$code); 

$code эт строка которая передается из формы.

DaRiYs 27-04-2008 13:12 790196

bruder слеши действительно пропали но при наявности выражений с наличием кавички или парных скобок текст не сохраняется.(((( Еслинапример пишу "нечто" или (нечто) то страница не загружается а текст в файл не сохраняется. Как это обойти?????!!!!!!!

bruder 27-04-2008 20:46 790375

странно, я не могу у себя получить такую ошибку. Сохраняется все корректно. Значит у вас в коде что то не так. Можно полный код посмотреть, потому как то что вы выложили не отличается от моего.

DaRiYs 28-04-2008 11:55 790698

В файле test.php находится форма вот код:
PHP код:

<?php 
require_once "maincore.php";
require_once 
"subheader.php";
require_once 
"side_left.php";
opentable("Форма ввода");
?><br />
<br />

<form action="test_post.php" method="get" enctype="multipart/form-data" name="coder" lang="ru">

  
    <div align="left">
        <p name="code" cols="75" rows="20">
          <textarea name="code" cols="77" rows="20"></textarea>
          <br />
          <br />
          <input name="submit" type="submit" value="Отправить" />
                </p>
  </div>
</form><br />
<br />

<?php
closetable
(); 
require_once 
"side_right.php";
require_once 
"footer.php";
?>

Потом текст направляется в test_post.php который производит сохранение. Вот код:
PHP код:

<?php   require_once "maincore.php";  
require_once 
"subheader.php";  
require_once 
"side_left.php";   
 
$file_input=fopen("cgi-bin/input.txt","w"); 
 
fwrite $file_inputstripslashes($code)); 
 
fclose ($file_input);    
require_once 
"side_right.php"
 require_once 
"footer.php";  ?>


bruder 28-04-2008 14:17 790803

вы уверенны что где нибудь не происходит проверка формы? Попробуйте ваш код без инклудов


PHP код:

<form action="1.php" method="get" enctype="multipart/form-data" name="coder" lang="ru">  
    <div align="left">
        <p name="code" cols="75" rows="20">
          <textarea name="code" cols="77" rows="20"></textarea>
          <br />
          <br />
          <input name="submit" type="submit" value="asdasda" />
        </p>
  </div>
</form><br />
<br /> 
<?
 $file_input
=fopen("1.txt","w"); 
 
fwrite $file_inputstripslashes($code)); 
 
fclose ($file_input);     
 
?>

будет очень странно если он у вас не заработает. Выставте error_reporting(E_ALL); чтобы посмотреть что нигде не вылетает раньше чем вы пишете в файл и уберите
@ везде где стоят

DaRiYs 28-04-2008 15:04 790846

Спасибо! Дествительно дело было в инклудах. Если их убрать из файла, который собственно и делает сохранение текста, то все ОК!


Время: 15:08.

Время: 15:08.
© OSzone.net 2001-