Comunidad de diseño web y desarrollo en internet online

Hacer dir con ruta en PHP

Citar            
MensajeEscrito el 28 Jul 2008 01:04 pm
Hola chicos. Tengo un problemilla.

Quiero hacer que un as consulte un dir en php, una lista de archivos, desde la ruta que yo le quiera dar. No sé si esto es posible. Es para hacer un administrador de archivos "para tontos" en mi web. El problema reside en que tengo tres servidores y quiero hacer el dir, si puede ser, con un sólo PHP, dandole la ruta que quiero que me consulte.

El PHP (llamadp dirall.php), uno modificado de un código que ya leí aquí:

Código :

<?php
if (isset ($_POST["ruta"])){
   chdir = ($_POST["ruta"]);
     $fp = opendir(".");
   $contador = 0;
   $datos = array();
     while (false !== ($file = readdir ($fp))){
        if (is_readable ($file)){
         $datos[$contador] = utf8_encode($file);
         if (is_dir($file)){
            $datos[$contador] = $datos[$contador] . "...";
         }
         $contador = $contador +1;
      }
     }
    closedir($fp);
   $t=implode(",", $datos); /*convertis el php a texto separado por comas cada posicion*/
   echo "&vector=" . $t;
} else {
   echo "&vector=ERROR";
}
?>


y en flash lo consulto así:

Código :

// DIR
function dir (ruta:String, server:String) {
   enviarRuta (ruta, server);
}

function enviarRuta (ruta:String, server:String) {
   server = server + "dirall.php";
   vectore_lv.vector = server;
   vectore_lv.ruta = ruta;
   trace ("escaneando '" + string (server) + "' --- ruta: '" +  string (ruta) "'");
   vectore_lv.sendAndLoad (server, vectore_lv, "POST");
   vectorr_lv.onLoad = function (dabuten) {
      if (dabuten) {
         vec = vectore_lv.vector.split (",");
      } else {
         trace ("Error en conexión con PHP");
      }
   };
}


Pero no me funciona: no recibo nada, ni siquiera un error.

A ver si me podéis ayudar, que ando un poco perdido en esto.

Otra cosa que he hecho es que a cada servidor le he metido el mismo php. A ver si con un sólo php se pueda leer la lista de archivos de este u otro servidor. Seguro que sí, pero no se me ocurre cómo. Por esto he desistido y al final en cada servidor le he metido uno nuevo.
Gracias.

Por byteeyes

6 de clabLevel



Genero:Masculino  

España

msie7
Citar            
MensajeEscrito el 29 Jul 2008 09:32 am
Ya lo he solucionado. El problema estaba en el PHP, esto me pasa por no leer. Al acceder al PHP directamente por el navegador me sale esto:
Parse error: parse error, unexpected '=' in /home/chs/celetteiberica.es/home/html/dirall.php on line 2.

Lo he corregido de la siguiente manera:

Código :

<?php
if (isset ($_POST["ruta"])){
   $directorio = utf8_decode($_POST["ruta"]);
   chdir ($directorio);
   $fp = opendir(".");
   $contador = 0;
   $datos = array();
   while (false !== ($file = readdir ($fp))){
      if (is_readable ($file)){
         $datos[$contador] = utf8_encode($file);
         if (is_dir($file)){
            $datos[$contador] = $datos[$contador] . "...";
         }
         $contador = $contador +1;
      }
   }
   closedir($fp);
   $t=implode(",", $datos); /*convertis el php a texto separado por comas cada posicion*/
   echo "&vector=" . $t;
} else {
   echo "&vector=ERROR";
}
?>


y el flash también tenía un pequeño error. Ahora sólo he usado una variable para enviar y recibir, y va bien:

Código :

function dir (ruta:String, server:String) {
   server = server + "dirall.php";
   vectore_lv.vector = "";
   vectore_lv.ruta = ruta;
   trace ("escaneando '" + server + "' --- ruta: '" + ruta + "'");
   vectore_lv.sendAndLoad (server, vectore_lv, "POST");
   vectore_lv.onLoad = function (dabuten) {
      if (dabuten) {
         trace ("vector sin separar = " + vectore_lv.vector);
         vec = vectore_lv.vector.split (",");
         trace ("vector = " + vec);
      } else {
         trace ("Error en conexión con PHP");
      }
   };
}


NOTA: El archivo dirall.php lo he situado en el directorio raíz. Cuando tenga hecho el pequeño explorador, a ver si lo cuelgo en aportes para que podáis disponer de él.

Saludos a todos y gracias.

Por byteeyes

6 de clabLevel



Genero:Masculino  

España

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.