Редактирование строки

Mozart

Новичок
Редактирование строки

есть два файла...
Файл 1:admin.php
<?

$base="base.dat";
$file = file($base);
$file = array_reverse($file);

for ($i = 0; $i <count($file); $i++)
{
$msg = explode("::",$file[$i]);

?>
<form action=edit.php method=\"post\" name=\"mozart\">
<font color=000000 face=verdana size=2>&#200;&#236;&#255;:<textarea rows=5 cols=30 name=name style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid\"><? echo "$msg[0]"; ?></textarea>
<?echo "<p><a href='edit.php?name=$name&line=" . $n . "'>".$file[$i]."</a></p>" ;?>
</form>
</td>
</table>
<hr>
<?
}
?>
Мне надо чтоб при изменении мною содержимого текстареи - оно изменение записывалось в текстовый файл...
Файл 2:
<?
$file_name = "base.dat" ;

$file = file($file_name) ;

if (isset($line))
{
$ofile = fopen($file_name,"a+") ;
$string = "$name;
fwrite($string,$file[$line]) ;
fclose($ofile) ;
header("Location: admin.php") ;
}
?>
я написал его вот так...но ведь переменная name все равно не передается.....
Как мне осуществить мою задумку....Или где мои ошибки?(наверно их много)
 

Фанат

oncle terrible
Команда форума
ХАХАХАХАХАХАХА!
Да, ошибок много :)
Ты дизайнер?
Судя по всему - да.
Украсить свою формочку не забыл, ухудшив читабельность кода. А ты подумал о тех кто будет в этой каше разбираться, чтобы тебе помочь?

Значит, так.
у тебя две основные ошибки.
первое.
Ты, вместо того, чтобы отправить ФОРМУ, отправляешь НЕИЗМЕНЕННОЕ значение name ПО ССЫЛКЕ.
Формы отправляются нажатием на КНОПКУ.
вот будь добр - кнопку вставь а ссылку эту чудовищную - убери.

Второе.
При записи ты записываешь ТОЛЬКО одну строчку.
ты считаешь, что это правильно?

-~{}~ 17.07.04 15:11:

Слушай, для начала, поучись как ты обрабоатывать не кучу форм, а ОДНУ.
Безо всяких строк и циклов.
 

Mozart

Новичок
спасиб...буду разбираться....а с массивами я уже немного научился....и даже написал как через веб удалять сообщения
:)

-~{}~ 17.07.04 23:50:

попытался сделать вот так :
<form action=edit.php?action=del&name=$name&ip=$msg[2]&msg=$msg[1]&line=" . $n . " method=\"post\" name=\"mozart\">
<font color=000000 face=verdana size=2>&#200;&#236;&#255;:<textarea rows=5 cols=30 name=name style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid\"><? echo "$msg[0]"; ?></textarea>
<font color=000000 face=verdana size=2>&#204;&#229;&#241;&#224;&#227;&#224;<textarea rows=5 cols=30 name=msg style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid\"><? echo "$msg[1]"; ?></textarea>
<font color=000000 face=verdana size=2>&#192;&#233;&#239;&#232;&#248;&#237;&#232;&#234;:<textarea rows=5 cols=30 name=ip style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid\"><? echo "$msg[2]"; ?></textarea>
<? echo "<input type = submit name = submit value = &#209;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252;! style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid; BACKGROUND: ffffff; Font face: Verdana\">";?>
</form>
изменив второй файл немного - добавил if(isset($submit))
дальше те же действия.....

не стал изменять во втором файле ошибку - так как думаю что все равно он что-то должен был записать вв файл а скрипт ничего не записал....все осталось также
 

Фанат

oncle terrible
Команда форума
что это за бред?
ты мой ответ вообще читал?
А это читал:
ухудшив читабельность кода. А ты подумал о тех кто будет в этой каше разбираться, чтобы тебе помочь?
?
Ты считаешь, что кто-то будет ломать глаза в этих бордер боттомах?
ради бога, но только не я.
А это читал:
для начала, поучись как ты обрабоатывать не кучу форм, а ОДНУ.
Безо всяких строк и циклов.
?
Судя по всему - нет.
Из этого следует, что отвечать тебе бесполезно.
ТЫ ВСЕ РАВНО НЕ ЧИТАЕШЬ.
 

Shreker

Guest
Сэкономь на тэгах.
Поставь <? ?> только в начале и в конце. А не на каждой строчке.
 

Mozart

Новичок
Извините.Ошибку осознал и исправился.
Изменил первый файл так...
<?
for ($i = 0; $i <count($file); $i++)
{
$msg = explode("::",$file[$i]);
$n = count($file)-$i-1;
$n1 = $n +1;
?>
<table>
<td>


<form action=edit.php?action=del&name=$name&ip=$msg[2]&msg=$msg[1]&line=" . $n . " method=\"post\" name=\"mozart\">
<textarea name=name ><? echo "$msg[1]"; ?></textarea>
<textarea name=ip ><? echo "$msg[2]"; ?></textarea>
<? echo "<input type = submit name = submit value = say>" ;?>
</form>
</td>
</table>
<hr>
<?
}
?>
Второй так..

<?
if(isset($submit))
{
$file_name = "base.dat" ;

$file = file($file_name) ;

for ($i = 0; $i <count($file); $i++)
{
$ofile = fopen($file_name,"a+") ;
$string = "$name::$msg::$ip";
fwrite($string,$file[$line]) ;
fclose($ofile) ;
header("Location: admin.php") ;
}
}
?>
Скрипт все равно ничего не записывает...оставляет все как есть..
 

Фанат

oncle terrible
Команда форума
Shreker
Только вот тупостей не надо писать!
НАОБОРОТ!! ему надо вынести этот тупой хтмл из эха!
 

chiffa

Guest
PHP:
<form action=edit.php?action=del&name=$name&ip=$msg[2]&msg=$msg[1]&line=" . $n . " method=\"post\" name=\"mozart\">
Mozart, обьясни зачем передавать данные через урл?
 

Shreker

Guest
А такая конструкция будет работать?
------------------------------------------
<?
for ($i = 0; $i <count($file); $i++)
{
$msg = explode("::",$file[$i]);
?>

<form action=edit.php method=\"post\" name=\"mozart\">
<font color=000000 face=verdana size=2>Eiy:<textarea rows=5 cols=30 name=name style=\"BORDER-BOTTOM: 1px solid; BORDER-LEFT: 1px solid; BORDER-RIGHT: 1px solid; BORDER-TOP: 1px solid\">

<? echo "$msg[0]"; ?>

</textarea>

<?echo "<p><a href='edit.php?name=$name&line=" . $n . "'>".$file[$i]."</a></p>" ;?>

</form>
</td>
</table>
<hr>

<?
}
?>
-----------------------------------------------------
Просто я пока считал, что простой HTML выводится в браузер без обработки. А значит некоторые строки здесь выведутся обязательно. Хотя начало цикла во 2 строке, а окончание в предпоследней.
 

Фанат

oncle terrible
Команда форума
хидден полем.
как и action
а вот все остальное ты видимо, от большого ума передаешь
 

Mozart

Новичок
добавил в первый файл
<?echo "<input type=hidden name=$n value=nomer >";?>

Чего еще надо исправить?
 

Фанат

oncle terrible
Команда форума
эту строку и надо исправить.
почему у тебя в адресной строке имя переменной - line, а значение - $n
а в хиддене - имя $n, а значение - вообще белиберда какая-то?

слушай, может быть, ты, все-таки, НАУЧИШЬСЯ ПЕРЕДАВАТЬ И ПОЛУЧАТЬ данные из формы, а?
А потом будешь со своими циклами пыхтеть?

-~{}~ 17.07.04 19:36:

значит так.
делаешь форму из ОДНОГО поля.

и скрипт в action, котоьрый вывродит на экран то, что было введено в форму.

Писать программы надо ПОСТЕПЕННО.
решая задачи ПО ОЧЕРЕДИ
а не наляпав пару килобайт ужасающе кривого кода, а потомв ываливать его на форум - исправляйте!
 

Mozart

Новичок
пришел к тому же....где-то куружусь на одной точке....
файл первый...
<?

$base="base.dat";
$file = file($base);
$msg = explode("::",$file[0]);


echo" <form action=edit.php method=\"post\" name=\"mozart\">
<textarea name=name >$msg[0]</textarea><br>
<textarea name=msg >$msg[1]</textarea>
<input type = submit name = submit value = &#209;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252;!>
</form>";
?>

файл второй....
<?
if(isset($submit))
{
$file_name = "base.dat" ;
$file = file($file_name) ;
$ofile = fopen($file_name,"a+") ;
$string = "$name::$msg";
fwrite($string,$file[0]) ;
fclose($ofile) ;
header("Location: admin.php") ;

}
?>
ничего не записывается
 

Фанат

oncle terrible
Команда форума
господи.
неужели можно вот так в школе учиться, чтобы через 11 лет НАСТОЛЬКО не понимать, тго тебе пишут...

эй, в блиндаже!
Дома кто-нибудь есть?
Или всех контузило?

Где я тебе писал, что в форму надо что-то выводить из файла?
Где я писал, что нужно что-то записывать?

Ну если ты сам не в состоянии отладить примитивный скрипт, то уж следовать то простым указаниям почему не можешь?!

сделай как я сказал.
у тебя ничего не выведется
после этого поднимаешь глаза кверху, находишь ссылку, которую я дал час назад, и в которой находится ответ на твой вопрос, читаешь, и исправляешь свой скрипт.

-~{}~ 17.07.04 20:05:

крутишься на одной точке ты от жадности.
потому, что хочешь захапать все разом.
наворачиваешь 10 действий, и ЕСТЕСТВЕННО не понимаешь, в каком месте ошибка.

И мало того, что тебе самому в голову не приходит ПРИМИТИВНАЯ идея СОКРАТИТЬ скрипт, чтобы увидеть, ГДЕ ошибка - так ты еще и не слушаешь, что тебе говорят.
 

Mozart

Новичок
<?

$base="base.dat";
$file = file($base);
$msg = explode("::",$file[0]);


echo" <form action=edit.php method=\"post\" name=\"mozart\">
<textarea name=name >$msg[0]</textarea><br>
<input type = submit name = submit value = &#209;&#238;&#245;&#240;&#224;&#237;&#232;&#242;&#252;!>
</form>";
?>


<?
if(isset($submit))
{
echo "$name";
$file_name = "base.dat" ;
$file = file($file_name) ;
$ofile = fopen($file_name,"a+") ;
$string = "$name";
fputs($ofile,$string);
fclose($ofile);
}
?>

ты ето имел ввиду....все выводится и даже записывается....
какие будут дальше указания?
 

Фанат

oncle terrible
Команда форума
нет, я не это имел в виду.
пусть кто-то другой тебе готовый код пишет.
это единственное, что ты воспринимаешьда и то - я сомневаюсь, что не впихнешь задом наперед
 
Сверху