Войти

Показать полную графическую версию : [решено] Сохранение текста в PHP.


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

rus-4-ever
24-04-2008, 13:33
Попробуй воспользоватся функциями: addslashes(str) При отправке формы и stripslashes(str) при принятии формы...

DaRiYs
24-04-2008, 14:12
Хорошо. А если у меня будут введены слеши их функция stripslashes(str) тоже ведь поудаляет?

bruder
24-04-2008, 15:14
не надо addslashes, просто так пашет

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

DaRiYs
24-04-2008, 16:35
А stripslashes(str) не удалит слеши которые введены в форму? И как побороть то что если есть парные кавычки " " или скобки ( ) то текст в файл вобще не сохраняется?

bruder
24-04-2008, 16:58
проверил перед тем как постить, все пашет. Давай код посмотреть

DaRiYs
24-04-2008, 18:11
$file=fopen("input.txt","w");
fwrite($file,$code);


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

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

bruder
27-04-2008, 20:46
странно, я не могу у себя получить такую ошибку. Сохраняется все корректно. Значит у вас в коде что то не так. Можно полный код посмотреть, потому как то что вы выложили не отличается от моего.

DaRiYs
28-04-2008, 11:55
В файле test.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 require_once "maincore.php";
require_once "subheader.php";
require_once "side_left.php";
$file_input=fopen("cgi-bin/input.txt","w");
fwrite ( $file_input, stripslashes($code));
fclose ($file_input);
require_once "side_right.php";
require_once "footer.php"; ?>

bruder
28-04-2008, 14:17
вы уверенны что где нибудь не происходит проверка формы? Попробуйте ваш код без инклудов


<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_input, stripslashes($code));
fclose ($file_input);
?>


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

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




© OSzone.net 2001-2012