форма для обновления dat файлов на php

Ros

Новичок
форма для обновления dat файлов на php

Всем привет!
Недавно начал изучать php. Хочу сделать форму на php для обновления dat (txt) файлов через интернет. Принцип – одно поле, где показывается и редактируется содержание dat файла и кнопка изменить. Пытался переделать под эти нужды скрипт гостевой книги…не получилось, слабоват я в этом к сожл. и литературу подходящую купить сейчас не могу. Может кто-нибудь подскажет?
 

Ros

Новичок
толково...спасибо за ссылку

-~{}~ 07.08.05 17:59:

Разобрался...работает, тока вот еще одна задачка подвернулась - хочеться чтобы связь в этой форме была двухсторонней, тоесть показывалось содержание файла в который записываем.
что имеем -
<!-- form.html -->

<form action="add.php" method="get">
<textarea name="form1" rows="4" cols="75" value=""></textarea><br>
<input type="submit" value="OK">
</form>

<!-- add.php -->
<?
if(isset($_GET['form1'])){
if($_GET['form1']!=""){
$fh=@fopen("robots.dat","w+");
if($fh){
$str=$_GET['form1'];
fwrite($fh,$str,strlen($str));
fclose($fh);
echo("&#212;&#224;&#233;&#235; &#243;&#241;&#239;&#229;&#248;&#237;&#238; &#231;&#224;&#239;&#232;&#241;&#224;&#237;, &#226;&#229;&#240;&#237;&#243;&#242;&#252;&#241;&#255;");
}else{
print "&#206;&#248;&#232;&#225;&#234;&#224; &#239;&#240;&#232; &#238;&#242;&#234;&#240;&#251;&#242;&#232;&#232; &#244;&#224;&#233;&#235;&#224;!";
}
}else{
print "&#194;&#241;&#229; &#239;&#238;&#235;&#255; &#228;&#238;&#235;&#230;&#237;&#251; &#225;&#251;&#242;&#252; &#231;&#224;&#239;&#238;&#235;&#237;&#229;&#237;&#251;!";
}
}
?>
 

Ros

Новичок
Исправил форму -
<form action="add.php" method="get">
<textarea name="form1" rows="4" cols="75" value="<? echo htmlspecialchars($file,ENT_QUOTES)?>"<?
$file = fopen("robots.dat","r");
if(!file)
{
echo("&#206;&#248;&#232;&#225;&#234;&#224; &#238;&#242;&#234;&#240;&#251;&#242;&#232;&#255; &#244;&#224;&#233;&#235;&#224;");
}
else
{
$buff = fread ($file,100);
print $buff;
}
?>"><? echo htmlspecialchars($file,ENT_QUOTES)?>
<?
$file = fopen("robots.dat","r");
if(!file)
{
echo("&#206;&#248;&#232;&#225;&#234;&#224; &#238;&#242;&#234;&#240;&#251;&#242;&#232;&#255; &#244;&#224;&#233;&#235;&#224;");
}
else
{
$buff = fread ($file,100);
print $buff;
}
?></textarea><br>
<input type="submit" value="OK">
</form>

Текст из файла выводит, но перед этим пишет такие ошибки - <br />
<b>Notice</b>: Use of undefined constant file - assumed 'file' in <b>z:\home\jvlartproduction.ru\www\admin\admin3.php</b> on line <b>54</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>текст из файла"><!--error--><br />
<b>Warning</b>: htmlspecialchars() expects parameter 1 to be string, resource given in <b>z:\home\jvlartproduction.ru\www\admin\admin3.php</b> on line <b>63</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script><!--error--><br />
<b>Notice</b>: Use of undefined constant file - assumed 'file' in <b>z:\home\jvlartproduction.ru\www\admin\admin3.php</b> on line <b>66</b><br />
<script language=JavaScript src='/errors__/phperror_js.php'></script>текст из файла
 

Фанат

oncle terrible
Команда форума
учись понимать и исправлять ошибки
ты понимаешь смысл слов " on line 63"?
 

Фанат

oncle terrible
Команда форума
ээээ...
постой.
а зачем ты два раза из файла читаешь?
и зачем выводишь в форму какой-то $file?
 

Ros

Новичок
дык, так было написано в мануале кот. ты дал....в самом дескрипторе и после стоят два скрипта...а с переменной ляп вышел.
работает -
<form action="add.php" method="get">
<textarea name="form1" rows="4" cols="75" value="<? echo htmlspecialchars($buff,$fh,ENT_QUOTES)?>"><?
$fh = fopen("robots.dat","r") or die ("Can't open file!");
$buff = fread ($fh,1000);
print $buff;
fclose($fh);

?></textarea><br>
<input type="submit" value="OK">
</form>
 

Фанат

oncle terrible
Команда форума
это чудовищно.
как можн выводить переменную 4buff ДО ТОГО, как ты её получил?

извини за такой вопрос, но ты вообще русский? в смысле, как у тебя с русским языком?
Ты по ссылке, что я дал, только код видел?
а вот этот текст не заметил:
При выводе value в тегах input форм, слеши не помогают.
Чтобы текст в таком поле выводился целиком, value надо заключать в кавычки, а к выводимым данным применять функцию htmlspecialchars()
А смысл этого текста тебе доступен?

я почему спрашиваю - потому, что ты русский и не понимаешь , и говоришь какую-то абракадабру:
в самом дескрипторе и после стоят два скрипта...
в каком дескрипторе? как ты умудрился в дескриптор СКРИПТЫ затолкать?
 

_eXpLoReR_

Guest
... Спокойнее... По-мойму, проще обьяснить как правильно... А русский или не русский... :) Я, например, беларус ;)

<?
// читаем данные
$fh = fopen("robots.dat","r") or die ("Can't open file!");
$buff = fread ($fh,1000);
print $buff;
fclose($fh);
//заменяем хтмл теги
htmlspecialchars($buff,$fh,ENT_QUOTES);
?>

и вот только после этого мы можем работать с $buff

может чего пропустил... но смысл такой...
 

Лисю

Guest
fread() читает length байт из указателя файла, на который ссылается fp. Чтение останавливается, если прочитано length байт или если достигнут EOF (конец файла), смотря что вперёд.
а если строка в файле более 1000 байт? не задумывалися?

$buff = fread ($fh,filesize("robots.dat"));
 

_eXpLoReR_

Guest
возможно там файл с паролем каким-нибудь ;)

а вообще... не помню с какой версии есть get_file_content... ну а если версия старая, то
if (file_exists($file_name)){
$fh = fopen ($file_name, "r");
if ($fh!=FALSE){
while (!feof ($fh)) {
$data .= fgets($fh, 4096);
}
fclose ($fh);
}
}
 
Сверху