Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: ошибка при редактировании файла
 
 автор: EXP   (21.09.2006 в 15:53)   письмо автору
 
 

У меня есть форма с несколькими textarea с именами ta[]. Вот отрывок кода из обработчика:
<?   if($act==OK){ $pu=fopen($put"w");
foreach(
$ta as  $tap){fwrite($pu$tap); }
fclose($pu);
ftp_put($link$path$putFTP_BINARY);

}
Почему получается так что данные из формы записываются в файлы по несколько раз?

   
 
 автор: EXP   (21.09.2006 в 16:56)   письмо автору
 
   для: EXP   (21.09.2006 в 15:53)
 

А вот щас неповторило, может из-за пробела перед fwrite. Теперь почему-то экранирует ". Типа делает \" . (;
 наверно повторы из-за символов редактируемого кода, например если в тексте встретится </textarea> код вылазит из textarea. сделал <?   $tap stripslashes($tap);

   
 
 автор: cheops   (21.09.2006 в 19:12)   письмо автору
 
   для: EXP   (21.09.2006 в 16:56)
 

Хм... так у вас используется цикл foreach($ta as $tap) - поэтому и запись идёт несколько раз...

   
 
 автор: EXP   (21.09.2006 в 19:39)   письмо автору
 
   для: cheops   (21.09.2006 в 19:12)
 

Без цикла записывается одно слово Array , или лучше будет сделать for ?

   
 
 автор: EXP   (21.09.2006 в 20:13)   письмо автору
 
   для: EXP   (21.09.2006 в 19:39)
 

Возможно дело в форме. У меня просто максимально возможно 1024 знака в текстареа вставить а хочется поболее ,ОпераМини, да ещё чуть_чуть неправильно применил то что вы показали из темы112, у меня внутри формы
<?    $c count($ed);
for(
$t=0$u=0$t<=$c$t++, $u=floor($t/$st))
$id_menu $u;
$str="$tr$id_menu"; $$str .= $ed[$t];  if((($t+1)%$st==0) or ($t==$c)) { echo " <textarea name='ta[]'>".$$str
."</textarea>";  } }
там $st-строк $ed-file(файл)

   
 
 автор: cheops   (21.09.2006 в 21:42)   письмо автору
 
   для: EXP   (21.09.2006 в 19:39)
 

А массив $ta какую структуру имеет?

   
 
 автор: EXP   (21.09.2006 в 22:37)   письмо автору
 
   для: cheops   (21.09.2006 в 21:42)
 

$ta у меня принимает postом содержимое полей текстареа так $ta = $_POST["ta"]; но бывает записывается в файл через запятую меж составляющими. Немного неточно показал, щас делаю пробник как показал, напрямую, ато у меня перед формой файл ещё делился на части в цикле $ed[] .= $value[$id];

   
 
 автор: EXP   (21.09.2006 в 23:37)   письмо автору
 
   для: EXP   (21.09.2006 в 22:37)
 

Пробовал $ta[]=$_POST["ta"]; записывает слово Array. Вот пробник
<?php 
$st 
5
$act $_POST['act'];
$ta $_POST['ta'];
$put "d777/x.php";

if(
$act==OK){ $pu=fopen($put"w");
foreach(
$ta as $tap) { $tap stripslashes($tap); 
fwrite($pu$tap);         }  fclose($pu);
$ed file("d777/x.php");
} else { 
$ed file("x.php");
}

echo 
"<html><body>"
."<form action='".$PHP_SELF."' method='POST'>"
."В?";   $c count($ed);
echo 
"<br>3DECb-$c CTPOK<hr>";
for(
$t=0$u=0$t<=$c$t++, $u=floor($t/$st))
$id_menu $u;
$str="$tr$id_menu"; $$str .= $ed[$t];  if((($t+1)%$st==0) or ($t==$c)) { echo " <textarea name='ta[]'>".$$str
."</textarea>"; } }
echo 
"<input type='submit' name='act' value='OK'></form>"
."</body></html>";
?>

   
 
 автор: EXP   (22.09.2006 в 02:56)   письмо автору
 
   для: EXP   (21.09.2006 в 23:37)
 

С повторами разобрался переставил[] теперь $ta[]=$_POST["ta"] i <textarea name='ta'> Теперь непойму почему добавляет запятую в начале ввода из поля и как сделать чтобы при попадании </textarea> в поле невылазил текст. (; Сильно сомневаюсь насчёт способа узнать пропорциональность if(($t+1)%$st==0)

   
 
 автор: EXP   (22.09.2006 в 23:45)   письмо автору
 
   для: EXP   (22.09.2006 в 02:56)
 

Немогу настроить обработчик. Эта запятая нехочет удаляться. Применяю substr() в цикле, обрабатывает только первую запятую. ПХП НЕ ОТЛИЧАЕТ СТРОКУ ОТ МАССИВА ! Неужели надо обозвать каждое текстареа по разному, что-бы убрать эти , ?

   
 
 автор: cheops   (23.09.2006 в 12:15)   письмо автору
 
   для: EXP   (21.09.2006 в 23:37)
 

Вы зря используете такие сложные конструкции как $$str - это считается плохим тоном, в программе очень сложно разобраться и очень сложно её понять. Человек смотрит на $$str, потом на $str="$tr$id_menu", переменные $id_menu и $tr найти уже не может, причём здесь запятые вообще понять не может. В результате тему можно поднимать сколько угодно - никто в этом случае не поможет, так как всего кода нет, а из имеющегося сложно что-то понять.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования