[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Запись в файл
LOSKAND
у меня возникла проблема на этапе записи в php файл текста (одирарной и двойной кавычки) опустим пожалуй подробности, и перейдём сразу к делу.
Пишу сайт застрял на этапе создания редактора текстов.

Код редактора:
тут всё понятно пишем текст и отправляем его в форуму записывающую наш текст в файл

print "
<form action='../?configuration=newdayeditornext' method=post name=REPLIER>
<TEXTAREA name='newsday' >
$newsday</TEXTAREA>
<input type=hidden name=datafile value=
$datafile>
</form>
"
;


Форма записи в файл
вот тут начинаютя проблемы, в решении которых мне нужна помощь
(привёл код который используется в данный момент)

if ($_GET['configuration']=="newdayeditornext") {

$confiscate="<?php \r\r\n".
"$"."newsday=<<<OK\r\n"
.$_POST["newsday"]."\r\n".
"OK;\r\n?>";

Header("Location: ../?configuration=newdayeditor");

$file=file("$inc/newsday.php");
$fp=fopen("$inc/newsday.php","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$configdata);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
Header("Location: ../?configuration=newdayeditor"); exit; }

$inc - папка куда записывается файл
$inc="inc";


newsday.php - файл в который записываются данные

проблема в общем то возникла вот на этом этапе

$confiscate="<?php \r\r\n".
"$"."newsday=<<<OK\r\n"
.$_POST["newsday"]."\r\n".
"OK;\r\n?>";
при таком раскладе кавычки как и одинарные так и двойные записываются в файл без проблем. но перед кавычким при записи в файл автоматически встаёт слэш тоесть выводит так \" или \'
всё бы ничего но при попытке вставить в текст html код
например
<html><body style="background-position: 0% 0%;"></body></html>

в файл записывается следующее
<html><body style=\"background-position: 0% 0%;\"></body></html>

При таком раскладе стиль уже отказывается работать. к тому же если необрашать внимание на слэшы и продолжать сохранять раз 10 то записываемый нами код вобще будет выглядеть так:
<html><body style=\\\\\\\\\\"background-position: 0% 0%;\\\\\\\\\\"></body></html>


если же изменить php код

$confiscate="<?php \r\r\n".
"$"."newsday=<<<OK\r\n"
.$_POST["newsday"]."\r\n".
"OK;\r\n?>";

на

$confiscate="<?php \r\r\n".
"$"."newsday=\"".$_POST['newsday']."\";\r\n?>";

то при попытке вставить кавычки в код, записываемый файл вобще умирает изза отсутствия слешей в коде. тоесть получается что в файл записываются ковычки следующим образом
$newsday=""""; 
что само по себе понятно что ошибка так как что бы код работал необходимы слэшы
$newsday="\"\""; 


И так вопрос как можно исправить эту ошибку?
Напомню что запись ведётся в файл а не в базу данных.
Помогите если кто знает как помочь в возникшей проблеме



Спустя 5 часов, 1 минута, 56 секунд (21.02.2010 - 20:41) TakoY написал(а):
в .htaccess

php_value magic_quotes_gpc 0
php_value magic_quotes_runtime off

Спустя 26 минут, 55 секунд (21.02.2010 - 21:08) LOSKAND написал(а):
Благодорю за помощь, работает
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.