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

  • Автор темы Автор темы Ros
  • Дата начала Дата начала

Ros

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

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

-~{}~ 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;!";
}
}
?>
 
Исправил форму -
<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>текст из файла
 
учись понимать и исправлять ошибки
ты понимаешь смысл слов " on line 63"?
 
ээээ...
постой.
а зачем ты два раза из файла читаешь?
и зачем выводишь в форму какой-то $file?
 
дык, так было написано в мануале кот. ты дал....в самом дескрипторе и после стоят два скрипта...а с переменной ляп вышел.
работает -
<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>
 
это чудовищно.
как можн выводить переменную 4buff ДО ТОГО, как ты её получил?

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

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

<?
// читаем данные
$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

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

$buff = fread ($fh,filesize("robots.dat"));
 
возможно там файл с паролем каким-нибудь ;)

а вообще... не помню с какой версии есть 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);
}
}
 
Сверху