błąd przy zapisz.php

0

Witam,
otóż zrobiłem takie pliki
panel.php

<a href="edytuj.php?plik=listy/lista1.txt">Lista 1 - edytuj</a>

edytuj.php

<form action="zapisz.php" method="post">
<input type="hidden" name="plik" value="<?=$_POST['plik']?>">
<input type="hidden" name="http_referer" value="<?=$HTTP_REFERER?>">
<textarea name="zawartosc"><?php
$plik = file($_GET['plik']);
foreach ($plik as $p)
{
echo ($p);
}
?></textarea>
<br>
<input type="submit" value="zmien">
<input type="button" value="anuluj" onClick="history.back()">
</form>

zapisz.php

<?php
 if ($fp = fopen ($_POST['plik'],'w'))
 {
  fputs ($fp, $_POST['zawartosc']);
  fclose ($fp);
  echo ('Zapisano plik.');
 }
 else
 {
  echo ('Nie mozna bylo zapisac pliku.');
 }
?>
<br><a href="<?=$_POST['http_referer']?>">powrót</a>

Chodzi o to, że jak chcę edytować plik txt to normalnie otwiera mi textarea gdzie mogę sobie edytować plik ale przy zapisie wyrzuca mi taki błąd:

Warning: fopen(<br /> <b>Notice</b>: Undefined index: plik in <b>C:\xampp\htdocs\www\edytuj.php</b> on line <b>2</b><br /> ): failed to open stream: No such file or directory in C:\xampp\htdocs\www\zapisz.php on line 2
Nie mozna bylo zapisac pliku.

Co może być przyczyną ?

0

zmieniłem w "zapisz.php"
linijkę nr.2:

if ($fp = fopen ($_POST['plik'],'w'))

na:

if ($fp = fopen ('plik','w'))

no i linijkę nr.5:

fputs ($fp, $_POST['zawartosc']);

na:

fputs ($fp,'zawartosc');

I teraz niby pokazuje, że zapisano plik i żadnego błędu nie wyrzuca ale nic się w pliku tym txt nie dzieje :/

1

w edytuj.php GET zamiast POST

<input type="hidden" name="plik" value="<?=$_GET['plik']?>">
1

Skoro przesyłasz linkiem zmienną to jest to

$_GET

więc w pliku edytuj zmień vartość ukrytego pola na

$_GET nie $_POST

I nic nie zmieniaj więcej.
I przeczytaj to:

http://skrypta.pl/jaka-jest-roznica-pomiedzy-_serverhttp_referer-a-http_referer/

0

Dzięki !!! Już wszystko działa ;)))

1 użytkowników online, w tym zalogowanych: 0, gości: 1