Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]PROBLEM podczas tworzenia pewnego skryptu..:(
Forum PHP.pl > Forum > PHP
PONURY ZNIWIARZ
Witajcie, przybyłem do was.. z niewielkim problemem.
Usiłuję napisać manager plików i folderów. Problem w tym ze myslac nad projektem... niewiele udało mi sie wymyslic. Napisałem tyle ile zdołałem.. potem powstał problem: jakej funkcji warunkowej uzyc i w jakiej kolejnosci by osiagnac zamierzony efekt? Switch.. ale kiedy.itp.Moze pokaze kod, bedzie przynajmniej juz cos wiadomo, (kod bed komentarzy ale objasnie najwanziejsze czesci - przy których sa problemy.

GLOWNY PLIK: (a ponizej naglowek i stopka (nieistotne ale zamieszcze).)

  1. <?php
  2. require_once('naglowek.lf');
  3.  
  4. $LOKALIZACJA_BAZOWA=$_SERVER[DOCUMENT_ROOT];
  5. $dana1=$_POST['dana1'];
  6.  
  7. echo"<hr width=100%><p class="czcionka_white">Lokalizacja: dirname($LOKALIZACJA_BAZOWA) </p><hr width=100%><br><table width=35% border="1" align=left><tr><td>";
  8.  
  9. if(isset($dana1)){
  10. $file_dir=$LOKALIZACJA_BAZOWA.'/'.$dana1.'/';
  11.  
  12. $baza = @opendir("$file_dir");
  13. while($file = readdir($baza)){
  14. echo "<div class="czcionka_white">$file</div>";
  15. echo "</div><br>";
  16. }
  17. closedir($baza);
  18. }
  19. else {
  20. $baza = @opendir("$LOKALIZACJA_BAZOWA");
  21. while($file = readdir($baza)) {
  22. echo "<div class="czcionka_white">$file</div>";
  23. echo "</div><br>";
  24. }
  25. closedir($baza);
  26. }
  27. echo"</tr></td></table><br>";
  28. echo"<p class=czcionka_white> Nazwa folderu;komenda: </p><form method=POST action=index.php><input type=text name=dana1> <input type=submit value=pokaz></form><br>";
  29. require_once('stopka.lf');
  30. ?>


stopka: (rozsz. *.lf)
  1. <HR><BR><p align="center" class="czcionka_white"><?php echo date("H:m:s S n Y"); ?> : System zarzadzania danymi : all rights reserved 2006, <A HREF="mailto:marasneo@wp.pl">Weiss Marek</A></p><BR>
  2. </BODY></HTML>


naglowek: (rozsz. *lf)
  1. <?php
  2. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  3. <HTML>
  4. <HEAD>
  5. <TITLE>xipp_sys : system zarzadzania danymi</TITLE>
  6. <meta HTTP-EQUIV="content-type" CONTENT="text/html; charset=UTF-8">
  7. <LINK REL=STYLESHEET TYPE="text/css" HREF="xipp_sys.css">
  8. </HEAD><BODY>
  9. ?>


Na poczatku idea była taka by napisać całość w oparciu wygladem o total commandera chocby.
Jednak nie jest to proste/.. przynajmniej dla mnie. W sieci nie znalazłem info jak napisac taki skrypt.A problemy czasem sie zdazaja.

$LOKALIZACJA_BAZOWA=$_SERVER[DOCUMENT_ROOT]; - tutaj okreslam dla zmiennej sciezke bazową. wpadlem na pomysl, by stworzyc "KONSOLE" za pomoca której sterowałbym zaprogramowanymi komendami wszystkim co obeznane z tematem: chmody, katalogi, usówanie plików. itp.

W tabeli otwieram folder i wyswietlam jego zawartosc.
jedyne co zdazyłem zrobic przed UTRATA sad.gif koncepcji było zapisanie w zmiennej $_POST wartosci jako nazwy katalogu do którego chce przełączyc widok w tabeli.no i to oczywiscie mi działa.

Jednak.. nie wiem jak zapisac instrukcje warunkową (najlepiej switch) chyba dla zmiennej $_POST o wartosciach KOMEND któe sterowałyby całoscia akcji:NP
cd.. - komenda dzieki której przeskakujac do wyzszego katalogu, moge potem sie za pomoca lini komend cofnac - poł dnia myslałem i nie wymysliłem jak cos takeigo napisac, no i w jakiej konstrukcji zapisac.

A gdybym wpisał nazwe pliku z rozszezeniem, wyswietliłbym go na ekranie. gdybym chciał zmienic chmod to .. to juz umiem., chodzi o sama koncepcje, jak cofnac sie do wczesniejszego folderu.. no i najgorsze:/

kod jest tak badziewnie przeze mnie napisany ze gdy wprowadze nazwe katalogu który istnieje,wyswietli mi sie on.. no ale gdy wtedy bede chciał przejsc do jego podkatalogu - NIC Z TEGO..czemu?

z uwagi na ta konstrukcje:
$file_dir=$LOKALIZACJA_BAZOWA.'/'.$dana1.'/';
Problem w tym /.. ze nie wiem tez jak sie zabrac za to. jako $dana1 jest nazwa katalogu do którego sie chce dostac, jelsi ona nie istnieje, wywala bład (nie napisałem poprpstu warunku dla tego zdarzenia (nie wiem w jakiej petli:/ chyba wszystko w switch.. , gdy wejde do katalogu (podam jego dobra nazwe), i zobacze wyswietlone podkatakogi.. bede hciał sie do nich dostac - nigdy w zyciu mi sie to nie uda:/ zmienna $file nie jest elastyczna.. nie wiem jak to napisac.

Chyba mogłbym poprostu uzyc połaczenia ftp - ale wiem ze inaczej (tak jak ja to chce zrobic) da się zrobic.
Mozecie odpalic całosc na wąsnych servach i looknac na działanie całosci (narazie inie usuwałem '.' i'..' bo to mało wazne w stusunku do tego ze nie wiem co robic dalej:(.

Prosze was o pomoc, jesli mozecie, napiszcie mi tylko szablon instrukcji warunkowych i ogólne wyjasnienie, bym wiedział jak poradzic sobnie z powyzszymi problemami, bez waszej weny ten skrypt mi nie powstanie:(.

Dziekuje za cierpliwosc i czekam na wasze uwagi i pomoc.
piczu
nie wiem o jaki problem dokladnie chodzi bo strasznie dlugi ten tekst, ale moze trafie
najprostrza konstrukcja jaka mi przychodzi do glowy:
Kod
<?php
switch ($komenda) {
case 'cd' : switch($parametr) {
    case '..' : // instrukcja
    break;
}
}
?>

a co do katalogow to powinno lokalizacja abzowa powinna byc okreslana tylko w wypadku gdy nie zostala okreslona jakaz zmienna ze sciezka do katalogu

PS. takich skryptow jest masa w sieci
PONURY ZNIWIARZ
dziekuje Ci, masz racje, podsunałes mi pomysł z ta petla. zaraz zabiore sie za dalszy ciag prac. myslalem czy nie sciagnac jakiegos gotowca i sprawdzic jak oni to rozwiazali.jescze pomysle.dzieki za pomoc. wiem ze tekt jest długi..za co przepraszam, ale mam nadzieje ze wypowie sie ktos jeszcze:).dziekuje

ok.. teraz jelsi uda mi się skonstruować taka zmienna, która bedzie zawierała w sobie taki link, by moc przejsc w kazdej chwili do dowolnego katalogu tzn:

jestem w : root/
mam tu m in folder o nazwie xxx, wchodze tam, wpisuje wiec w mojej linii komend (patrz skrypt-wyzej) : xxx i dostaje sie do katalogu po czym od razu go wyswietlam, jestem w:
root/xxx/
no i w xxx widze katalog xxx2. chce do niego przejsc.nie moge.poniewaz nie potrafie skombinowac jak moge poruszac sie po katalogach - to chyba najtrudniejszy problem do rozwiazania.
ps.nie wiem jak cofnac sie do katalogu nadrzednego i jak przejsc do dowolnej ilosci podrzednych.
na pewno nie za pomoca zmiennej:

$file_dir=$LOKALIZACJA_BAZOWA.'/'.$dana1.'/';
help me
piczu
  1. <?php
  2. switch ($komenda) {
  3. case 'cd' : switch($parametr) {
  4. case '..' : // instrukcja przejscia do kat nadrzednego, moze to byc odciecie ostatniej nazwy w
     sciezce
  5. break;
  6. default : $dir += "/".$parametr; // instr. przejscia do kat. podrzednego $parametr
  7. }
  8. }
  9. ?>


poruszasz sie wpisujac komende cd xxx lub cd .., mozesz tez stworzyc cd /root/xxx/xxx2


seaquest: piczu - uzywaj poprawnego bbcode
seaquest
Zamykam temat dopóki autor nie wyśle mi PW z propozycją poprawnego tematu i linkiem do tego wątku.
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.