Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-09-2005
mieltxo mieltxo is offline
Miembro
 
Registrado: jun 2005
Posts: 29
Poder: 0
mieltxo Va por buen camino
Angry Acceso a directorios en PHP

Buenas tardes,

Tengo un problema bastante gordo al intentar listar los ficheros de un directorio compartido.

El problema esta en que solo puedo listar los ficheros dentro de la red local, y quisiera listar los que estuvieran fuera de mi red. Supongo que por privilegios no tengo acceso.. ¿Alguien sabe como lo puedo solucionar?

El error es: Invalid to open dir: invalid argument

Código PHP:
 if ($handleo opendir("\\\\".gethostbyname($_SERVER['REMOTE_ADDR'])."\\dibujados\\")) {
   while (
false !== ($filem readdir($handleo))) {
     if (
$filem != "." && $filem != "..") {
       echo 
"$filem\n";
     }
   }
 } 
Gracias por vuestra ayuda

Última edición por dec fecha: 19-09-2005 a las 20:51:38. Razón: ¡¡Encerrar el código fuente entre las etiquetas [PHP] ... [/PHP]!!
Responder Con Cita
  #2  
Antiguo 25-09-2005
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Podría ser por el sentido de las barras?

Cita:
Empezado por mieltxo
Buenas tardes,
Código PHP:
  if ($handleo opendir("\\\\".gethostbyname($_SERVER['REMOTE_ADDR'])."\\dibujados\\")) {
    while (
false !== ($filem readdir($handleo))) {
      if (
$filem != "." && $filem != "..") {
        echo 
"$filem\n";
      }
    }
  } 
Ponlo así
Código PHP:
 if ($handleo opendir("//".gethostbyname($_SERVER['REMOTE_ADDR'])."/dibujados/")) {
     while (
false !== ($filem readdir($handleo))) {
       if (
$filem != "." && $filem != "..") {
         echo 
"$filem\n";
       }
     }
   } 
Saludos
Salvica
Responder Con Cita
  #3  
Antiguo 27-09-2005
mieltxo mieltxo is offline
Miembro
 
Registrado: jun 2005
Posts: 29
Poder: 0
mieltxo Va por buen camino
No, las barras están correctamente. Ya lo probé hace tiempo y no me funciona del modo que planteas

Parecen ser problemas de permisos al acceder a otras redes...
Responder Con Cita
  #4  
Antiguo 27-09-2005
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Es que, no sé si me equivoco, da la impresión que estás intentando leer la estructura de directorios de otro sistema ajeno al que ejecuta la script, ya que: (del manual de php)

string gethostbyname ( string hostname)
Código PHP:
 (PHP 3PHP 4 PHP 5
 
gethostbyname -- Obtiene la dirección IP  correspondiente al nombre de una máquina conectada a Internet
Teniendo en cuenta que php se ejecuta en el lado del servidor, la búsque da ficheros se debería realizar en éste, y las "tres barras" deberian referenciar la estructura del ordenador donde está montado el servidor (tipo "file:///" aunque esto último no lo he probado)

En fín, que pruebes lo siguiente: (copiado del manual)
Ejemplo 2. Listar todos los ficheros en un directorio excepto . y ..
Código PHP:
 <?php 
 
if ($handle opendir('.')) {
     while (
false !== ($file readdir($handle))) { 
         if (
$file != "." && $file != "..") { 
         echo 
"$file\n"
         } 
     }
     
closedir($handle); 
 }
 
?>
Responder Con Cita
  #5  
Antiguo 29-09-2005
mieltxo mieltxo is offline
Miembro
 
Registrado: jun 2005
Posts: 29
Poder: 0
mieltxo Va por buen camino
Efectivamente, has entendido bien.

Leo una estructura de directorio ajeno dentro de mi propia red local, y funciona correctamente.

El problema esta en que quiero hacer lo mismo en un sistema ajeno que no este dentro de mi propia red local. Pero no se como puedo solventar los problemas de seguridad para acceder a otro sistema mediante PHP.

Un saludo
Responder Con Cita
  #6  
Antiguo 29-09-2005
Avatar de salvica
salvica salvica is offline
Miembro
 
Registrado: mar 2004
Ubicación: Albacete (España) ... En un lugar de la Mancha ...
Posts: 304
Poder: 21
salvica Va por buen camino
Te paso un pedazo de una script que en su día encontré en internet, para comprobar la ip real del visitante a una página, ya que la ip que devuelve "REMOTE_ADDR" puede estar enmascarada por un proxy, router, etc. A lo mejor te sirve de algo
Código PHP:
 /*
   +---------------------------------------------------------------------------
   | Calcular los datos de la IP entrante
   |        - IP del usuario
   |        - IP del HOST de donde viene
   |        - NOMBRE del HOST de donde viene
   +---------------------------------------------------------------------------
 */
   
if( isset($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]) ) {
       
$ip_user    $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
       
$ip_host    $HTTP_SERVER_VARS["REMOTE_ADDR"];
       
$array      split", "$ip_user );
       
$url_host   = @gethostbyaddr$array[0] );
   } else {
       
$ip_user    $_SERVER["REMOTE_ADDR"];
       
$ip_host    $_SERVER["REMOTE_ADDR"];
       
$url_host   = @gethostbyaddr($ip_host);
   }
   
$port_host  $_SERVER["REMOTE_PORT"];
   
$navegador  $_SERVER["HTTP_USER_AGENT"];
   if( isset(
$_SERVER["HTTP_REFERER"]) ) {
       
$vieneDe    $_SERVER["HTTP_REFERER"];
       
$pos        strpos$vieneDe"?" );
       if( 
$pos===false ) { // nota: tres signos igual
      // no encontrado, el script se ejecuta en local ...
       
} else {
           
$vieneDesubstr$vieneDe0$pos );
       }
   } else {
       
$vieneDe    $url_host;
   } 
Luego puedes utilizar la ip del usuario o la del host, indistintamente.

Saludos
salvica
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 11:43:03.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi