Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skrypt do edycji pliku
Forum PHP.pl > Forum > Gotowe rozwiązania
Grumens
Witam,
Znalazlem skrypt do edycji plikow w zdalnym katalogu, oto ten skrypt:

[php:1:8c5c88e16b]
<?php
ob_start();

echo " <html> <body bgcolor=white text=black link=blue>n";

if ($dir)
{
echo "Using $dir directory.";
$mydir = $dir;
} else $mydir = "."; // for unix use /home/usern/public_html/
// or '.' for default dir

$curdir=dir($mydir);

if($writefile)
{
$fd=fopen($mydir."/".$file, "w");
fwrite($fd, stripslashes($text));
fclose($fd);
header("Location: $PHP_SELF?dir=$mydir");
}
elseif($file)
{
$fp=fopen($mydir."/".$file, "r"); // $mydir$myfile
while(!feof($fp)) {
$con .= fgets($fp, 4096);
}
fclose($fp);

echo " <FORM ACTION='$PHP_SELF' METHOD='post'>n
<input type=hidden name=writefile value=$file>n
<input type=hidden name=file value=$file>n
<input type=hidden name=dir value=$mydir>n
<TITLE>WebShell - Editing $file</TITLE>n
<TEXTAREA ROWS='20' COLS='55' NAME='text'>n";
echo $con;
echo " </TEXTAREA><BR>n
<input type='submit' value='Save'>n</form>n";
}
else
{
while($file = $curdir->read()) {
// originally was $curdir->read()
echo "<a href='$PHP_SELF?file=$file&dir=".$mydir."'>$file</a><BR>n";
}
echo " <FORM ACTION='$PHP_SELF' METHOD='post'>n
<input type=text name=dir value='$mydir'>n
<TITLE>Editing $file</TITLE>n
<input type='submit' value='Change dir'>n</form>n";
}

ob_end_flush();
?>
</body>
</html>
[/php:1:8c5c88e16b]

Chcialbym ten skrypt w ten sposob przerobic, zeby edytowal konkretny plik a nie pokazywal wszystkie pliki z katalogu. Wyobrazam to sobie tak, ze na jakiejs innej stronie mam button, ktory prowadzi mnie do tego skryptu, naciskam go, otwiera sie pole textowe z otwartym konkretnym, przeze mnie podanym w skrypcie plikiem, edytuje plik, naciskam save i z powrotem laduje mi sie ta strona, z ktorej naciskalem button do edycji. Skrypt jest troche skomplikowany i nie moge sobie z tym poradzic.
hwao
php pocz -> Skrypty php
netzah
Nie trzeba w nim nic przerabiac - mozesz podac spokojnie konkretny plik i katalog przez POST lub GET, np. robiac link na stronie:
edycja.php?file=plik.txt&dir=katalog

A co do powrotu na strone po edycji to musisz zmienic przekierowanie z linii 20 na np.
Kod
header("Location: index.php");

Jezeli chcesz wracac do roznych stron, a nie zawsze do jednej - musisz rowniez przekazac ten adres, np. $back, i wtedy linia 20 wyglada tak:
Kod
header("Location: $back");


a do formularza trzeba dodac
Kod
echo "<input type='hidden' name='back' value='$back'>";

zeby nie zgubic tego parametru po przeladowaniu strony.
Majdan
Nie ma sensu przekazywać $back, bo można użyć $_SERVER['HTTP_REFERER'].
netzah
Mozna, ale warto pamietac, ze Referer jest ustawiany przez przegladarke i - jak stwierdza manual - it cannot really be trusted.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.