login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > FTP mappen bekijken

FTP mappen bekijken

Auteur: funmen - 25 januari 2008 - 20:24 - Gekeurd door: Gerard - Hits: 3051 - Aantal punten: (0 stemmen)



Ikzelf zat al even te zoeken naar een script als deze maar heb helaas niks kunnen vinden.
Met dit script kan er op een ftp server gekeken worden welke mappen er allemaal op staan. Je kan als het ware hierdoorheen browsen. Misschien dat ik later een volledig systeem erop zet waarmee ook bestanden gedownload kan worden of erop geplaatst kan worden.

Ik heb de time out niet aangepast aangezien ik niet denk dat dit zo'n probleem zou moeten geven tenzij je een trage ftp server hebt of internet verbinding.

Waarom dit script? Nou, ik ga het gebruiken om een systeem vanaf een website te installeren via ftp op een andere website. Voor de installatie heb ik de mogelijkheid nodig om in een web pagina door de mappen op een ftp server te browsen, later komen hier meer mogelijkheden. Wanneer de juiste map gekozen is, kan het systeem later de bestanden erop zetten waardoor ze dus geïnstalleerd worden.

Let op, dit is dus een kaal script welke aangepast kan worden. Ook kan ik de stabiliteit niet garanderen en werkt het nog niet met beveiligde ftp.

Om te kijken hoe snel het script is bij bepaalde pagina's zit er ook een parse tijd weergever in, ook van deze website

Doe je plezier ermee; je kan je eigen dingen aan toevoegen, zie kader rechts

mvg funmen

Wegens veiligheidredenen geef ik geen voorbeeld aangezien iedereen dan mijn mappen op een website kan zien

Het systeem controleert ook niet of er wel een verbinding gemaakt kan worden.

Code:
  1. <?php
  2. //Het script Hieronder zorgt ervoor dat de parsetime van de pagina berekent word.
  3.  
  4. function get_microtime ()
  5.  
  6. {
  7.  
  8. return array_sum (explode (' ', microtime ()));
  9.  
  10. }
  11.  
  12. function _ob_parsetime_replacer ($data)
  13.  
  14. {
  15.  
  16. $time = number_format (get_microtime () - $GLOBALS['parse_time'], 5);
  17.  
  18. $_placeholder = '{|**PARSE_TIME_PLACE**|}';
  19.  
  20. $pos = strrpos ($data, $_placeholder);
  21.  
  22. return substr_replace ($data, $time, $pos, strlen ($_placeholder));
  23. }
  24. $GLOBALS['parse_time'] = get_microtime ();
  25.  
  26. ob_start ('_ob_parsetime_replacer');
  27.  
  28. /*
  29. FTP CONNECT v0.1 Béta
  30.  
  31. Dit script zorgt ervoor dat er een ftp verbinding gemaakt kan worden met een externe server. Hierdoor kan er een zogenaamde "n0pe" installatie gedaan worden waardoor de gebruiker niks hoeft te installeren om het systeem naar het web te kunnen uploaden. Nadeel is wel dat de gebruiker het script niet lokaal kan draaien wanneer er geen ftp server is die geen connectie heeft van buitenaf.
  32. */
  33. //Gegevens instellen
  34. $ftp_c ['server'] = 'ftp.iets.com';//FTP server ip/domein
  35. $ftp_c ['user'] = 'gebruikersnaam';//Gebruikers naam van ftp server
  36. $ftp_c ['password'] = 'blaat';//Wachtwoord behorende bij ftp server
  37.  
  38. //De volgende functie controleerd of de door de ftp opgegeven object een map of bestand is.
  39. function ftp_condir($file, $ftp_connection){
  40. if(ftp_size($ftp_connection, $file) == '-1'){
  41. return true; // Is directory
  42. }else{
  43. return false; // Is file
  44. }
  45. }
  46.  
  47.  
  48.  
  49. //Verbinding maken met de server
  50. $ftp_con = ftp_connect($ftp_c['server']);//Verbinding maken met de server
  51. ftp_login($ftp_con, $ftp_c['user'], $ftp_c['password']);//Inloggen
  52.  
  53.  
  54.  
  55. /*
  56. Hieronder gaan we vaststellen welke map er geopent moet worden. Verlopig is dit systeem niet helemaal zonder bugs (helaas) waardoor niet alles goed werkt
  57. */
  58.  
  59.  
  60.  
  61.  
  62. if(isset($_GET['map'])){//Kijken of er een map gepost is
  63.  
  64. if($_GET['map'] == ''){//map is leeg
  65. $showrootmap=true;
  66.  
  67. } else {//map is niet leeg
  68.  
  69.  
  70. //map aan een var toewijzen
  71. $map=$_GET['map'];
  72.  
  73.  
  74.  
  75. if($map == '..'){//Er is .. opgegeven, dit betekent een map hoger dan gewenst.
  76.  
  77. if(isset($_GET['curmap'])){//Er is een map opgegeven waar de bezoeker eerst zat
  78.  
  79. $curmap=$_GET['curmap'];
  80.  
  81. ftp_chdir( $ftp_con, $curmap );//Map veranderen naar de map waar we al waren
  82.  
  83.  
  84. if(ftp_cdup( $ftp_con ) == true){//Nu gaan we controleren of die map wel bestaat
  85.  
  86.  
  87. $map=ftp_pwd( $ftp_con );//De huidige map opvragen
  88. $files = ftp_nlist($ftp_con, $map); //leest de directory uit
  89.  
  90. //Hieronder gaan we controleren wat een bestand is en wat een map is.
  91. for($pa = 0; $pa < count($files);$pa++){ //zogren dat elke array gecontroleerd word
  92. if(ftp_condir($files[$pa],$ftp_con) == true){//word de waarde true terug gegeven dan is het een map
  93.  
  94. if(isset($maps)){
  95. $arraymaps=count($maps);
  96. $arraymaps++;
  97.  
  98. $maps[$arraymaps]=$files[$pa];
  99. } else {
  100. $maps[1]=$files[$pa];
  101. }
  102.  
  103. //echo $files[$pa]."<br/>\n";
  104. }//zoniet dan doen we niks
  105.  
  106. }//einde for lus.
  107.  
  108. //print_r($files); //print de array met files uit.
  109.  
  110.  
  111.  
  112. if(isset($_GET['curmap'])){//Zorgen dat het in de map in de curmap komt
  113. //Nu gaan we de mappen uitvoeren
  114. for($pa = 0; $pa < count($maps)+1;$pa++){ //zogren dat elke array gecontroleerd word
  115.  
  116. //Nu gaan we controleren of het gaat om een map hoger te komen of niet
  117. if($maps[$pa] == '..'){
  118. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=..&curmap=".$map."\">Bovenliggende map</a><br/>";
  119. } else {//Dat is het dus niet
  120.  
  121. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=/".$_GET['curmap']."/../".$maps[$pa]."&curmap=".$map."\">".$maps[$pa]."</a><br/>";
  122.  
  123. }
  124. }//einde for lus.
  125. } else {
  126. //Nu gaan we de mappen uitvoeren
  127. for($pa = 0; $pa < count($maps)+1;$pa++){ //zogren dat elke array gecontroleerd word
  128.  
  129. //Nu gaan we controleren of het gaat om een map hoger te komen of niet
  130. if($maps[$pa] == '..'){
  131. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=..&curmap=".$map."\">Bovenliggende map</a><br/>";
  132. } else {//Dat is het dus niet
  133.  
  134.  
  135. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=/".$_GET['curmap']."/../".$maps[$pa]."&curmap=".$map."\">".$maps[$pa]."</a><br/>";
  136.  
  137. }
  138.  
  139. }//einde for lus.
  140.  
  141.  
  142. }
  143.  
  144.  
  145.  
  146.  
  147. } else {//De opgegeven waarde in curmap bestaat niet
  148. //Dus rootmap weergeven
  149. $showrootmap=true;
  150.  
  151. }//einde geen opgegeven waarde
  152.  
  153.  
  154. } else {//Er is geen curmap opgegeven dus mag de rootmap weergeven worden
  155.  
  156. $showrootmap=true;//Rootmap weergeven
  157. }//einde geen curmap
  158.  
  159.  
  160. /*
  161. Hier komt het script die er voor moet zorgen dat er een map hoger moet gaan
  162.  
  163. */
  164.  
  165.  
  166.  
  167. } else {
  168. if( ftp_chdir( $ftp_con, $map ) ){ //De ftp verbinding kan naar deze map gezet worden dus de map bestaat
  169. $map=ftp_pwd( $ftp_con );//De huidige map opvragen
  170. $files = ftp_nlist($ftp_con, $map); //leest de directory uit
  171.  
  172. //Hieronder gaan we controleren wat een bestand is en wat een map is.
  173. for($pa = 0; $pa < count($files);$pa++){ //zogren dat elke array gecontroleerd word
  174. if(ftp_condir($files[$pa],$ftp_con) == true){//word de waarde true terug gegeven dan is het een map
  175.  
  176. if(isset($maps)){
  177. $arraymaps=count($maps);
  178. $arraymaps++;
  179.  
  180. $maps[$arraymaps]=$files[$pa];
  181. } else {
  182. $maps[1]=$files[$pa];
  183. }
  184.  
  185. //echo $files[$pa]."<br/>\n";
  186. }//zoniet dan doen we niks
  187.  
  188. }//einde for lus.
  189.  
  190. //print_r($files); //print de array met files uit.
  191.  
  192.  
  193.  
  194. if(isset($_GET['curmap'])){//Zorgen dat het in de map in de curmap komt
  195. //Nu gaan we de mappen uitvoeren
  196. for($pa = 0; $pa < count($maps)+1;$pa++){ //zogren dat elke array gecontroleerd word
  197.  
  198. //Nu gaan we controleren of het gaat om een map hoger te komen of niet
  199. if($maps[$pa] == '..'){
  200. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=..&curmap=".$map."\">Bovenliggende map</a><br/>";
  201. } else {//Dat is het dus niet
  202.  
  203. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=/".$_GET['map']."/".$maps[$pa]."&curmap=".$map."\">".$maps[$pa]."</a><br/>";
  204.  
  205. }
  206. }//einde for lus.
  207. } else {
  208. //Nu gaan we de mappen uitvoeren
  209. for($pa = 0; $pa < count($maps)+1;$pa++){ //zogren dat elke array gecontroleerd word
  210.  
  211. //Nu gaan we controleren of het gaat om een map hoger te komen of niet
  212. if($maps[$pa] == '..'){
  213. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=..&curmap=".$map."\">Bovenliggende map</a><br/>";
  214. } else {//Dat is het dus niet
  215.  
  216.  
  217. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=/".$_GET['map']."/".$maps[$pa]."&curmap=".$map."\">".$maps[$pa]."</a><br/>";
  218.  
  219. }
  220.  
  221. }//einde for lus.
  222.  
  223. }
  224.  
  225. } else {//De opgegeven map bestaat niet
  226. $showrootmap=true;//De rootmap moet weergegeven worden
  227. }//einde de opgegeven map bestaat niet
  228.  
  229.  
  230. }//einde ..
  231. }//Einde map is niet leeg
  232.  
  233.  
  234.  
  235.  
  236. } else {//Er is geen $_GET['map'] dus de rootmap moet weergegeven worden.
  237. $showrootmap=true;
  238. }//einde rootmap weergeven.
  239.  
  240.  
  241.  
  242.  
  243.  
  244. /*
  245.  
  246.  
  247. Het volgende script is er om de rootmap weer te geven. Dit is de map waar de gebruiker direct toegang tot heeft na het inloggen, een hoger levele is niet mogelijk.
  248.  
  249.  
  250. */
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258. if(isset($showrootmap)){//rootmap weergeven
  259.  
  260. $map=ftp_pwd( $ftp_con );//De huidige map opvragen
  261. $files = ftp_nlist($ftp_con, $map); //leest de directory uit
  262. //Hieronder gaan we controleren wat een bestand is en wat een map is.
  263. for($pa = 0; $pa < count($files);$pa++){ //zogren dat elke array gecontroleerd word
  264. if(ftp_condir($files[$pa],$ftp_con) == true){//word de waarde true terug gegeven dan is het een map
  265.  
  266. if(isset($maps)){
  267. $arraymaps=count($maps);
  268. $arraymaps++;
  269.  
  270. $maps[$arraymaps]=$files[$pa];
  271. } else {
  272. $maps[1]=$files[$pa];
  273. }
  274.  
  275. //echo $files[$pa]."<br/>\n";
  276. }//zoniet dan doen we niks
  277.  
  278. }//einde for lus.
  279.  
  280. //print_r($files); //print de array met files uit.
  281.  
  282.  
  283.  
  284.  
  285. //Nu gaan we de mappen uitvoeren
  286. for($pa = 0; $pa < count($maps)+1;$pa++){ //zogren dat elke array gecontroleerd word
  287. echo "<a href=\"".$_SERVER['PHP_SELF']."?map=".$maps[$pa]."\">".$maps[$pa]."</a><br/>";
  288. }//einde for lus.
  289.  
  290. }//Einde rootmap weergeven
  291.  
  292.  
  293. ftp_close($ftp_con); //sluit connectie
  294. ?>
  295. <br/>
  296. <br/>
  297. <STRONG>Het systeem kon de ftp verbinding realiseren in deze tijd:</STRONG> {|**PARSE_TIME_PLACE**|}

Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Geen reacties (0)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.044s