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

Форум PHP

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

 

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

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

тема: Редактирование файла...=)
 
 автор: JESS   (15.09.2007 в 21:50)   письмо автору
 
 

Здравствуйте! Помогите пожалуйста, код редактирования тхт файлов через Браузер, состоит из двух частей, при нажатии на кнопку сохранить проис ходит переход на другую страницу, но я ни как не могу их соединить в одну, выпадет ошибка....
Notice: Undefined variable: txt in z:\home\localhost\www\phpruauth\text\w1.php on line 3
Warning: fwrite(): supplied argument is not a valid stream resource in z:\home\localhost\www\phpruauth\text\w1.php on line 8

Warning: fclose(): supplied argument is not a valid stream resource in z:\home\localhost\www\phpruauth\text\w1.php on line 9
PLZ!
index.php

<?php
 $txt
='';

if(isset(
$_GET['change'])) $mod $_GET['change'];
if(isset(
$_GET['change'])==false) {$txt '1.txt';}

if(isset(
$mod))
   {
    switch(
$mod)
         {

case 
'1'$txt='1.txt';break;

//case '2007': $byw='mail.php';break;

case '2'$txt='2.txt';break;

//case '3': $txt='bestella.php';break;

default: $txt '3.txt'; break;

}
  }


  
$home="$txt";

$fil="$home";
 if(!
file_exists($fil))
 {
  
$fp=fopen($fil,"w+");

  
fclose($fp);
 }
 else{
   
$a=file_get_contents("$home");
    }
 
?>
 <a href=?change=1>1</a><br>
  <a href=?change=2>2</a><br>
  <a href=?change=3>3</a><br>
  <form action="chan.php" method="POST">
 <textarea type=text rows=10 cols=50 name='a'><?php echo $a;?></textarea><br>
 <input type="submit" value="Spara">
 </form>

а этот сохраняет изменения:

<?php

$home
="1.txt";
$d=$_POST['a'];
echo 
$d;
$fil="$home";
$fp=fopen($fil,"w+");
fwrite($fp,$d);
fclose($fp);
echo 
"<hr><a href=aaa.php>&#196;ndra</a>";
?>

   
 
 автор: bronenos   (15.09.2007 в 22:04)   письмо автору
 
   для: JESS   (15.09.2007 в 21:50)
 

$txt не определяется
 $home="$txt"; 
$fil="$home";

шоза цирк?

   
 
 автор: JESS   (15.09.2007 в 22:08)   письмо автору
 
   для: bronenos   (15.09.2007 в 22:04)
 

ну это я так...=)

   
 
 автор: Unkind   (15.09.2007 в 22:08)   письмо автору
 
   для: JESS   (15.09.2007 в 21:50)
 

Вы че-то перепутали. Ошибки не соответствуют коду.

   
 
 автор: Бамси   (15.09.2007 в 22:29)   письмо автору
 
   для: JESS   (15.09.2007 в 21:50)
 

У меня код работает на ура.
Вот только он уязвим, и можно прочитать любоой файл на сервере, так что добавте switch, как в вашем варианте.

<?php
if(isset($_GET['txt'])) {
 
$reg_file $_GET['txt'];
 
$text_echo file_get_contents($reg_file);
 if(isset(
$_POST['text'])) {
  
file_put_contents($reg_file,$_POST['text']);
 } 
?>
<form method="POST">
<textarea type=text rows=10 cols=50 name='text'><?=$text_echo;?></textarea><br />
<input type="submit" value="Edit">
</form>
<?php
}else{
 
$files scandir(".");
 foreach(
$files as $file)
 {
  
$nope = array(".","..");
  if(
in_array($file,$nope)) continue;
  echo 
"<a href=\"?txt=$file\">$file<br />";
 } 
}
echo 
"<a href=".$_SERVER[PHP_SELF].">File List</a>";
?>

   
 
 автор: Unkind   (15.09.2007 в 22:40)   письмо автору
 
   для: Бамси   (15.09.2007 в 22:29)
 

Определение $nope из цикла вынесите.

   
 
 автор: JESS   (15.09.2007 в 22:49)   письмо автору
 
   для: Бамси   (15.09.2007 в 22:29)
 

Спасибо! Я сделал так как вы сказали, и выводит ошибку:

 <?php
 $txt
='';

if(isset(
$_GET['change'])) $mod $_GET['change'];
if(isset(
$_GET['change'])==false) {$txt '1.txt';}

if(isset(
$mod))
   {
    switch(
$mod)
         {

case 
'1'$txt='1.txt';break;

//case '2007': $byw='mail.php';break;

case '2'$txt='2.txt';break;

//case '3': $txt='bestella.php';break;

default: $txt '3.txt'; break;

}
  }

if(isset(
$_GET['txt'])) {
 
$reg_file $_GET['txt'];
 
$text_echo file_get_contents($reg_file);
 if(isset(
$_POST['text'])) {
  
file_put_contents($reg_file,$_POST['text']);
 }
?>
<form method="POST">
<textarea type=text rows=10 cols=50 name='text'><?=$text_echo;?></textarea><br />
<input type="submit" value="Edit">
</form>
<?php
}else{
 
$files scandir ("$txt");
 foreach(
$files as $file)
 {
  
$nope = array(".","..");
  if(
in_array($file,$nope)) continue;
  echo 
"<a href=\"?txt=$file\">$file<br />";
 }
}
echo 
"<a href=".$_SERVER[PHP_SELF].">File List</a>";
?>

   
 
 автор: Бамси   (15.09.2007 в 23:38)   письмо автору
 
   для: JESS   (15.09.2007 в 22:49)
 

Жесть. Скажи что должен делать скрипт? Он должен создавать файлы? Он должен редактировать любой файл? Или строго определенный?

   
 
 автор: JESS   (16.09.2007 в 00:48)   письмо автору
 
   для: Бамси   (15.09.2007 в 23:38)
 

Фаил должен редактировать тхт файлы лежащие в папке...

   
 
 автор: Бамси   (16.09.2007 в 06:47)   письмо автору
 
   для: JESS   (16.09.2007 в 00:48)
 

Сохраните и загрузите через браузер:

read.php

<?php 
if(isset($_GET['txt'])) { 
 
$reg_file $_GET['txt']; 
 
$text_echo file_get_contents($reg_file); 
 if(isset(
$_POST['text'])) { 
  
file_put_contents($reg_file,$_POST['text']); 
 }  
?> 
<form method="POST"> 
<textarea type=text rows=10 cols=50 name='text'><?=$text_echo;?></textarea><br /> 
<input type="submit" value="Edit"> 
</form> 
<?php 
}else{ 
 
$files scandir("."); 
 
$nope = array(".",".."); 
 foreach(
$files as $file
 { 
  if(
in_array($file,$nope)) continue; 
  echo 
"<a href=\"?txt=$file\">$file<br />"
 }  

echo 
"<a href=".$_SERVER[PHP_SELF].">File List</a>"
?>

   
 
 автор: JESS   (16.09.2007 в 13:00)   письмо автору
 
   для: Бамси   (16.09.2007 в 06:47)
 

Fatal error: Call to undefined function: scandir() in z:\home\localhost\www\nnng\read.php on line 15

   
 
 автор: Бамси   (16.09.2007 в 22:16)   письмо автору
 
   для: JESS   (16.09.2007 в 13:00)
 

http://ru2.php.net/manual/ru/function.scandir.php

   
Rambler's Top100
вверх

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