Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

listanje remote direktorijuma

[es] :: PHP :: listanje remote direktorijuma

[ Pregleda: 4207 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

urke
Aleksandar Urošević
Web Developer
Kragujevac

Član broj: 2997
Poruke: 317

Jabber: urke@elitesecurity.org
Sajt: https://urosevic.net


Profil

icon listanje remote direktorijuma17.05.2003. u 00:46 - pre 254 meseci
Trebam da napravim tabelu sa fajlovima za preuzimanje na sajtu, ali ono što radi u lokalu ne radi OnLine.

Znači, ne mogu na udaljenom serveru da odradim iz PHP skripte listanje direktorijuma sa readdir($dir) ... Gledao sam po PHP priručniku ali mi nije jasno ono fopen(), kako čitati t.j. listati direktorijum iz PHP strane/skripte na serveru/sajtu?

Hvala svima unapred.
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: listanje remote direktorijuma17.05.2003. u 01:13 - pre 254 meseci
sa readdir() nikako.

možda sa ftp funkcijama ako imaš pristup... http://php.net/ftp
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: listanje remote direktorijuma17.05.2003. u 12:00 - pre 254 meseci
možeš koristiti konekciju na port 80 i izlistati datoteke i direktorijume poput nekog web crawler-a. Curl je ključna reč.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

-zombie-
Tomica Jovanovic
freelance programmer
ni.ac.yu

Član broj: 4128
Poruke: 3448
*.dial.InfoSky.Net

Sajt: localhost


+5 Profil

icon Re: listanje remote direktorijuma17.05.2003. u 15:52 - pre 254 meseci
gorane, ili nemoj da lupaš, ili kaži meni da lupam.. ;)

preko http protokola (iliti porta 80) nije moguće izlistati datoteke i direktorijume.


ako ti predlažeš učitavanje html stranice i parsiranje i izvlačenje linkova, pa na osnovu toga *pretpostavljanje* imena direktorijuma i fajlova, to uopšte ne mora da znači.. web server uopšte ne mora da mapira url na fajl sistem, nego može raditi url-rewrite, ili bilo koji drugi fazon..

pa tvoj rođeni engine na prevod.org je prvi primer.. hoćeš da me ubediš da je na http://prevod.org/osobe/goran /goran direktorijum ili fajl.. sigurno znam da nije ;)
 
Odgovor na temu

tOwk
Danilo Šegan
Zemun/Beograd

Član broj: 94
Poruke: 2743
*.beograd-3.tehnicom.net

ICQ: 9344053
Sajt: alas.matf.bg.ac.yu/~mm011..


+2 Profil

icon Re: listanje remote direktorijuma17.05.2003. u 19:09 - pre 254 meseci
Nije to „njegov rođeni engine“, već delo mojijeh ruku :-P

Nego, pomoću HTTP-a je zaista nemoguće izlistati direktorijume, pošto pojam direktorijuma ne postoji: postoji samo pojam „resursa“ koji se identifikuje pomoću URL-a („Jednoobrazni ukazivač na resurs“, upravo smišljen prevod za Zombija, ljubitelja istih :-)). Postojanje „/“ na kraju URL-a ništa ne znači, već je to znak kao i svaki drugi (to što su većinom serveri na Unix sistemima — na njima se ovaj znak koristi za razdvajanje direktorijuma — je druga priča).

Sad, ako pretpostavimo da je Urke imao probleme drugačije prirode: pokušava da iščita sadržaj direktorijuma na udaljenom serveru, ali pomoću PHP programa koji radi na istom tom serveru, tj. „u lokalu“.

E tada može biti raznih problema pri upotrebi readdir() funkcije. Najverovatniji problem je upotreba odgovarajućih dozvola. Zato, proveri da li imaš „x“ (execute) ovlašćenja za sve poddirektorijume željenog direktorijuma, i „r“ (read) ovlašćenja za taj direktorijum (ukoliko se ne koristi CGI PHP + SuExec, onda najverovatnije korisnik pod kojim server radi [httpd, nobody] treba da ima ta ovlašćenja).

U svakom slučaju, preporučujem da pošalješ „nevaljali“ kod, pa da neko sa malo više iskustva od tebe to prokomentariše.
Možda se moje mišljenje promenilo, ali ne i činjenica da sam u pravu.
 
Odgovor na temu

Goran Rakić
Beograd

Moderator
Član broj: 999
Poruke: 3766

Sajt: blog.goranrakic.com


+125 Profil

icon Re: listanje remote direktorijuma17.05.2003. u 19:20 - pre 254 meseci
Rekao je da mu treba za download skriptu. Predpostavio sam da je našao strava sajt sa linkovima i da želi da to predstavi kao svoju download sekciju i da onda preusmeri korisnika. U tom slučaju (kako korisnik mora da dođe do fajla) sigurno je da postoji link oblika http://nesto.tld/dir1/mapiranj...ne/apache/servera/datoteka.zip. Dakle, sigurno je da do datoteka.zip u 80% slučaja može da dođe. A verujem da je to što mu i treba. U onih 20%, ona putanja je privremenog tipa te do datoteke nije moguće doći. Tako nešto sigurno može uraditi izradom (ne tako složenog) parsera koji koristi curl ili slične php klase (snoopy ili tako nešto) i snima linkove ili čak i prevlači datoteke u lokal. (ukoliko na serveru postoji wget, wget +xrk systemski poziv može da te reši puno muka, naročito sa onim lepim apache stilom "listanja" direktorijuma, gde je to omogućeno)

Tačno je da sam direktorijum nikako (poput sa readdir) ne može da izlista preko HTTP protokola. Za to može poslužiti već predloženi način pristupa preko FTPa, mada lično ne verujem da imaš privilegije da se na taj remote sajt prijavljuješ kroz FTP.

Danilovo razumevanje pitanja je pak dosta logično te molim autora teme da pojasni da li je na to mislio.
http://sr.libreoffice.org — slobodan kancelarijski paket, obrada teksta, tablice,
prezentacije, legalno bez troškova licenciranja
 
Odgovor na temu

urke
Aleksandar Urošević
Web Developer
Kragujevac

Član broj: 2997
Poruke: 317

Jabber: urke@elitesecurity.org
Sajt: https://urosevic.net


Profil

icon Re: listanje remote direktorijuma19.05.2003. u 15:04 - pre 254 meseci
Evo ovako sam ja to uradio, preko nlist funkcije:

Code:
<?php
// definisanje promenljivih za pristup FTP serveru
$ftp_server = "kolubara.mas.bg.ac.yu";
$ftp_user_name = "username";
$ftp_user_pass = "pass";

// povezivanje na FTP serever
$conn_id = ftp_connect($ftp_server);
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// proveravamo da li samo se uspešno povezali na server
if ((!$conn_id) || (!$login_result)) {
  // ako nismo, kukamo posetiocu o tome... 
  echo "<FONT SIZE=\"2\" COLOR=\"red\">Eh, nemamo sreće ovaj put. Povezivanje na FTP server nije uspelo <BIG>☹</BIG><BR>";
  echo "Pokušali smo da se nakačimo na server „".$ftp_server."‟ sa korisničkim imenom „".$ftp_user_name."‟, al' nam nije uspelo</FONT>";
} else {
  // ako jesmo odrađuejmo posao koji treba odraditi...
  <BR><BR><B>Trenutni sadržaj direktorijuma:</B><BR>";

  // listanje direktorijuma
  $ftp_dir = ftp_nlist($conn_id, "/web/user/urke");

  // ispisivanje sadržaja direktorijuma za određene fajlove
  for($i==0;$i<count($ftp_dir);$i++) {
    if (preg_match ("/\.(tar|gz|bz2|zip|tgz)$/i",$ftp_dir[$i])) {
      $file_mod = ftp_mdtm($conn_id, "$ftp_dir[$i]");
      $file_size = ftp_size($conn_id, "$ftp_dir[$i]");
      $fajl_name = ereg_replace("/web/user/urke/","", $ftp_dir[$i]);
      print "fajl <A HREF=\"$fajl_name\">$fajl_name</A> veličine $file_size bajtova, postavljen na mrežu ".date("d-m-Y", $file_mod)." u ".date("H:i:s", $file_mod)."<br>";
    }
  }
}

// zatvaranje konekcije sa serverom
ftp_close($conn_id);
?>

 
Odgovor na temu

[es] :: PHP :: listanje remote direktorijuma

[ Pregleda: 4207 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.