[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: формы
mihai
Есть гостевая книга
на текстовых файлах.

есть панель администратора

так вот
вопрос

если в форме редактирования для редоктировани использовать поля
text
то всё хорошо редактируется и записывается в файл


echo 'Редактируемое сообщение: '<input type="text" name="text" value="'.$text.'"><br/>';
echo '
Ответ админа: '<input type="text" name="a" value="'.$a.'"><br/>'



es::19.02.2010 14:21:03::127.0.0.1::иии::еее::Редактируемое сообщение:::ссс::ответ администратора
es::19.02.2010 16:39:32::127.0.0.1::hhh::ррр::редактируемое сообщение ::ррр::ответ администатора
es::19.02.2010 16:40:12::127.0.0.1::ррр::ррр::добавленное собщение::ррр::ответ администратора




но если для редактирования использовать
textarea
то при записи в файл
появляется пустая строка

откуда она берётся ?
как это исправить ?


echo 'Редактируемое сообщение:<br/><textarea name=text rows=10 cols=100>'.$text.'</textarea><br/>';
echo 'Ответ админа:<br/><textarea name=a rows=10 cols=100>'.$a.'</textarea><br/>';




es::19.02.2010 14:21:03::127.0.0.1::иии::еее::Редактируемое сообщение:::ссс::ответ администратора222222222

es::19.02.2010 16:39:32::127.0.0.1::hhh::ррр::редактируемое сообщение ::ррр::222222222222555555555555



es::19.02.2010 16:40:12::127.0.0.1::ррр::ррр::добавленное собщение::ррр::ответ администратора




Спустя 34 минуты, 38 секунд (19.02.2010 - 17:37) netruxa написал(а):
хз так сложно сказать, кинь часть кода, где записывается в файло переменные $text и $a

Спустя 1 час, 6 минут, 8 секунд (19.02.2010 - 18:43) mihai написал(а):

/////////////////////
// редактирование ///
////////////////////
if($_GET['edit'])
{
//Создаем условие, проверяем была ли нажата кнопка
if($_POST['change'])
{

//Читаем файл в массив
$data = @file($url);

$es = $_POST['es'];
$d = $_POST['d'];
$ipp = $_POST['ipp'];
$name = $_POST['name'];
$mail = $_POST['mail'] ;
$text = $_POST['text'];
$site = $_POST['site'];
$a = $_POST['a'];/////////////////////////a


//Формируем строку и пишем её на старое место в массиве
$data[$_POST['num']] = "$es::$d::$ipp::$name::$mail::$text::$site::$a\n"; //////////////////////////////a

//Открываем файл и урезаем его до нулевой длины
$f = fopen($url,"w");
//это цикл for нужен для того чтоба
//функция sizeof() получает колличество элеменотов в переменной
//$data
//то есть цикл будет переберать весь массив и когда
//совпадёт нужный $data[$i]
//т.е. тот индекс который мы выбрали для редактирования
//то он его и перезапишет

for($i=0;$i<=sizeof($data);$i++)
{
//Пишем строки(значения массива)
fputs($f,$data[$i]);
}
fclose($f);

Спустя 52 минуты, 50 секунд (19.02.2010 - 19:36) twin написал(а):
Дело в том, что текстарея сохраняет символы переноса строки, а текстовое поле нет.
Ты достаешь из файла строку, в конце которой есть знак переноса. он удваивается. Убери \n в конце строчки
$data[$_POST['num']] = "$es::$d::$ipp::$name::$mail::$text::$site::$a\n"; 

Спустя 1 минута, 53 секунды (19.02.2010 - 19:38) twin написал(а):
или лучше так:
$data = array_map('rtrim', file($url));
Быстрый ответ:

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