Показать полную графическую версию : [решено] Сохранение текста в PHP.
Дано: форма в которую вводится текст. Форма должна сохранять текст в файл. Но у меня перед спец. символами всегда дописываются слеши. А если есть парные кавычки " " или скобки ( ) то вобще не сохраняется. Как сохранить текс, так как он вводится?
rus-4-ever
24-04-2008, 13:33
Попробуй воспользоватся функциями: addslashes(str) При отправке формы и stripslashes(str) при принятии формы...
Хорошо. А если у меня будут введены слеши их функция stripslashes(str) тоже ведь поудаляет?
не надо addslashes, просто так пашет
$a = fopen('1.txt', 'w');
fwrite($a, stripslashes($_POST['text']));
А stripslashes(str) не удалит слеши которые введены в форму? И как побороть то что если есть парные кавычки " " или скобки ( ) то текст в файл вобще не сохраняется?
проверил перед тем как постить, все пашет. Давай код посмотреть
$file=fopen("input.txt","w");
fwrite($file,$code);
$code эт строка которая передается из формы.
bruder слеши действительно пропали но при наявности выражений с наличием кавички или парных скобок текст не сохраняется.(((( Еслинапример пишу "нечто" или (нечто) то страница не загружается а текст в файл не сохраняется. Как это обойти?????!!!!!!!
странно, я не могу у себя получить такую ошибку. Сохраняется все корректно. Значит у вас в коде что то не так. Можно полный код посмотреть, потому как то что вы выложили не отличается от моего.
В файле 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"; ?>
вы уверенны что где нибудь не происходит проверка формы? Попробуйте ваш код без инклудов
<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); чтобы посмотреть что нигде не вылетает раньше чем вы пишете в файл и уберите
@ везде где стоят
Спасибо! Дествительно дело было в инклудах. Если их убрать из файла, который собственно и делает сохранение текста, то все ОК!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.