kpjeziorak
14.03.2004, 01:16:46
Witam
Mam prosbe: potrzebuje prosty skrypt, za pomoca ktorego bede mogl edytowac pliki .php znajdujace sie na mioim serwerze. Odczyt - Edycja - Zapis. Chcialbym edytowac te pliki html`em. Czy moglby mi ktos napisac taki skrypt?
[EDIT] Aha, chcialbym, zeby skrypt wczesniej wyswietlil mi pliki ktore moge odytowac, te pliki bym definiowal samodzielnie. Nie chce zeby byla mozliwosc edycji wszystkich plikow z mojego serwera.
hm... mam taki skrypt na dysku ale nie jest on mojej produkcji, jest to skrypt przykładowy z książki "php4 od podstaw", tam jest coś takiego jak webedytor tylko nie wiem czy to by było zgodne z regulaminem gdybym ci go udostępnił i czy admini by czegoś do mnie nie mieli ;] jakby co to na PM wal
tiraeth
14.03.2004, 12:48:23
Jeżeli jest to sam kod, a nie część książki to myślę, że możesz wrzucić tutaj... tylko oznacz uprzednio, że pochodzi on z PHP4 od podstaw...
ftp://ftp.helion.pl/przyklady/php4po.zip <- link do przykładów z książki [na serwerze helion.pl], w rozdziale 10 jest skrypt webeditor.php, przepatrz sobie jego kod i zobacz jakie pliki on jeszcze include'uje do skryptu [chyba na samym początku są wczytywane]
[EDIT]
opcje skryptu:
:arrow: przeglądanie katalogów [+ tworzenie nowych katalogów z poziomu przeglądarki]
:arrow: tworzenie nowych plików i zapisywanie ich w aktualnie przeglądanym katalogu [+ edycja plików], w dowolnym rozszerzeniu
:arrow: upload plików na server
:arrow: wypisywanie wszystkich wiadomości o aktualnie edytowanym pliku
jedynym minusem jest brak hasła ale to to sam możesz juz sobie zrobić ;]
kpjeziorak
14.03.2004, 13:19:54
Dziekuje Wam za pomoc, zaraz zoabcze ten skrypt.
kpjeziorak
14.03.2004, 14:09:20
No dziala:) i ma wiecej funkcji niz potrzebiwalem, ale czy moglby mi ktos napisac do tego skryptu haslo? Bo jak sie ktos niepowolany wpakuje to bedzie zle:)
oto kod pliku webeditor.php:
[php:1:7c65f78f36]<?php
include "./common.inc";
include "./editor.inc";
include "./navigator.inc";
function frame_page() {
global $PHP_SELF, $dir;
?>
<HTML>
<HEAD><TITLE>Witamy w sieciowym edytorze tekstu!</TITLE></HEAD>
<FRAMESET COLS="200,*">
<FRAME NAME="menu"
SRC="<?php echo "$PHP_SELF?action=dir_page&dir=$dir"; ?>">
<FRAME NAME="main"
SRC="<?php echo "$PHP_SELF?action=editor_page&dir=$dir"; ?>">
<NOFRAMES>
<BODY TOPMARGIN="0" LEFTMARGIN="0">
<P>Strona używa ramek, a twoja przeglądarka ich nie obsługuje.</P>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>
<?php
}
function upload_file_form() {
global $PHP_SELF, $dir;
?>
<FORM METHOD="POST" ENCTYPE="MULTIPART/FORM-DATA"
ACTION="<?php echo $PHP_SELF ?>" TARGET="menu">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="upload_file">
<INPUT TYPE="HIDDEN" NAME="dir" VALUE="<? echo $dir ?>">
Lokalna nazwa pliku <INPUT TYPE="FILE" NAME="userfile">
Nazwa przesłanego pliku<INPUT TYPE="TEXT" NAME="filename" LENGTH="20">
<INPUT TYPE="SUBMIT" NAME="submit" VALUE="Prześlij">
</FORM>
<?php
}
function upload_file() {
global $userfile, $userfile_name, $userfile_size, $userfile_type,
$filename, $default_dir, $dir, $PHP_SELF, $WINDIR;
if(empty($dir) || !ereg($default_dir, $dir)) {
error_message("$dir/$filename nie jest prawidłowym katalogiem.");
}
if(!isset($WINDIR)) $userfile = str_replace("","", $userfile);
if(empty($filename)) $filename = basename($userfile_name);
if($userfile_size <= 0) {
error_message("$filename jest pusty.");
}
if(file_exists("$dir/$filename")) {
error_message("$filename już istnieje.");
}
if(!@copy($userfile, "$dir/$filename")) {
error_message("Nie mogę skopiować $userfile_name na $filename.");
}
if(!isset($WINDIR) && !@unlink($userfile)) {
error_message("Nie mogę usunąć $userfile_name.");
}
html_header();
$file_info_array = file_info("$dir/$filename");
if($file_info_array["filetype"] == 'text')
echo "<SCRIPT>parent.main.location.href=
'$PHP_SELF?action=editor_page&
dir=$dir&filename=$filename';
</SCRIPT>";
dir_page();
html_footer();
}
if(empty($dir) || !ereg($default_dir, $dir)) {
$dir = $default_dir;
}
if($filename == basename($PHP_SELF)) error_message("Nie możesz mnie zmieniać!");
switch ($action) {
case "editor_page":
html_header();
upload_file_form();
editor_page();
html_footer();
break;
case "dir_page":
html_header();
dir_page();
html_footer();
break;
case "make_dir":
make_dir();
break;
case "delete_dir":
delete_dir();
break;
case "delete_file":
delete_file();
break;
case "save_file":
save_file();
break;
case "upload_file":
upload_file();
break;
default:
frame_page();
break;
}
?>[/php:1:7c65f78f36]
daj to na początek:
[php:1:f2e711953d]<?php
session_start();
if(!isset($_SESSION['log'])) {
if(empty($_GET['p'])) {
echo"<form method=post action=?p=check>
Hasło: <input type=password name=pass><br>
</form>";
} else {
$your_pass = "twoje_haslo";
if($_POST['pass']!=$your_pass) die("Błędne hasło!");
$_SESSION['log'] = TRUE;
}
} else {
//tu zawartość pliku webedytor.php
}
?>[/php:1:f2e711953d]
pisałem to na szybko ale sądze że dobrze więc nie powinno być błędu
jesli wyskoczy ci komunikat że "Cannot modify..." to daj przed session_start(); funkcje ob_start(); a na końcu pliku ob_end_flush();
kpjeziorak
14.03.2004, 14:59:40
Dzieki dziala, tylko mam jeszcze jeden problem:) Gdy wpisze haslo naciskam Enter - wyswietla sie czysta strona, gdy odswieze jest ok, czy mozna jakos to poprawic?
tiraeth
14.03.2004, 17:42:14
[php:1:3757c63a8f]<?php
session_start();
if(!isset($_SESSION['log'])) {
if(empty($_GET['p'])) {
echo"<form method=post action=?p=check>
Hasło: <input type=password name=pass><br>
</form>";
} else {
$your_pass = "twoje_haslo";
if($_POST['pass']!=$your_pass) die("Błędne hasło!");
$_SESSION['log'] = TRUE;
header("webedytor.php"); // aby po utworzeniu sesji wrocic na webedytor.php juz zalogowanym nalezy cos takiego wrzucic
}
} else {
//tu zawartość pliku webedytor.php
}
?>[/php:1:3757c63a8f]
Cytat
[php:1:ff75511442]<?php
session_start();
if(!isset($_SESSION['log'])) {
if(empty($_GET['p'])) {
echo"<form method=post action=?p=check>
Hasło: <input type=password name=pass><br>
</form>";
} else {
$your_pass = "twoje_haslo";
if($_POST['pass']!=$your_pass) die("Błędne hasło!");
$_SESSION['log'] = TRUE;
header("webedytor.php"); // aby po utworzeniu sesji wrocic na webedytor.php juz zalogowanym nalezy cos takiego wrzucic
}
} else {
//tu zawartość pliku webedytor.php
}
?>[/php:1:ff75511442]
no tak ;] zapomniałem o tym ;]
kpjeziorak
14.03.2004, 21:01:26
Zamiast:
[php:1:eb6de0b31b]<?php
header("webedytor.php"); // aby po utworzeniu sesji wrocic na webedytor.php juz
zalogowanym nalezy cos takiego wrzucic
?>[/php:1:eb6de0b31b]
powinno byc

:
[php:1:eb6de0b31b]<?php
header("webeditor.php"); // aby po utworzeniu sesji wrocic na webedytor.php juz
zalogowanym nalezy cos takiego wrzucic
?>[/php:1:eb6de0b31b]
ale nic to nie daje:(
[php:1:655b32da19]<?php
header("Location: webeditor.php"); // sie mi zapomniało
?>[/php:1:655b32da19]
kpjeziorak
15.03.2004, 18:18:51
Dzieki bardzo! Teraz dziala super! Pozdrawiam!
Meteo
4.04.2004, 12:27:32
A no właśnie mnie nie działa... ^^
[php:1:d943fb567e]
//tutaj mam body
<?
ob_start();
session_start();
if(!isset($_SESSION['asdgfasgsfdgarge'])) {
if(empty($_GET['p'])) {
echo"<form method=post action=?p=check>
Hasło: <input type=password name=pass><br>
</form>";
} else {
$your_pass = "pass";
if($_POST['pass']!=$your_pass) die("Błędne hasło!");
$_SESSION['asdgfasgsfdgarge'] = TRUE;
}
} else {
// wyswietlany skrypt
if($p=="logout") { session_destroy(); print"wylogowałeś się"; }
ob_end_flush();
?>
// koniec body
[/php:1:d943fb567e]
przy polu logowania wyświetla mi się ostrzeżenie
Cytat
Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:usrapachehttpdhtmlindex.php:4) in c:usrapachehttpdhtmlindex.php on line 17
linijka 17 to sesion_start()
w kopii dwóch egzemplarzy a niżej tego wyświetla mi logowanie, po zalogowainu musze odświerzyć żeby zobaczyć skrypt, i problem z wylogowaniem też jest po wpisaniu index.php?p=logout pokazuje mi się skrypt ale sesja jest nisczona po zamknięciu przeglądarki
z góry dzięki za pomoc
ale ty dałes w pliku dwa razy session_start() ? bo jak tak to zawsze się daje tylko jeden raz session_start() i już jest spokój
Meteo
4.04.2004, 15:22:34
tylko jeden raz dałem ale ostrzezenie wyskakuje dwa razy
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.