SoloCodigo

Programación Web y Scripting => PHP => Mensaje iniciado por: RadicalEd en Lunes 15 de Diciembre de 2008, 22:00

Título: No existe el directorio
Publicado por: RadicalEd en Lunes 15 de Diciembre de 2008, 22:00
Hola chicos de SoloCodigo, tengo un problema con una aplicación para recorrer un directorio, el .php lo tengo en /var/www/app/index.php y quiero recorrer el directorio /home/miuser/, lo hago con este código:
Código: PHP
  1. //index.php
  2. $p_directorio_det = '/home/usuario/';
  3. if (is_dir($p_directorio_det))
  4. {
  5.   echo "Si es un directorio";
  6.   if ($dh = opendir($p_directorio_det))
  7.   {
  8.     while (($archivo = readdir($dh)) !== false)
  9.     {
  10.       if ($archivo != "." && $archivo != "..")
  11.       {
  12.         $archivo_movimiento_fuente = $p_directorio_det.$archivo;
  13.        }
  14.      }
  15.    }
  16.  }
  17. }
  18. else
  19. {
  20.   echo "No es un directorio";
  21. }
  22.  
  23.  
Y me está imprimiendo diciendo que no es un directorio, alguien sabe por qué pasa esto???

Gracias Chao.
Título: Re: No existe el directorio
Publicado por: shadow_rev en Martes 16 de Diciembre de 2008, 00:17
Pueden ser 2 cosas:

1. El servidor web no tiene privilegios para leer la carpeta.
2. Aunque la carpeta tenga todos los privilegios, puede que (el condenado) SELinux esté bloqueando el acceso, debido a que es una carpeta de usuario.

Ya has probado la función con otras carpetas (p.e /var/www/app/.) ??

Si no me equivoco, usas Debian no ?? dejame te averiguo el dato del SELinux, eso me pasó pero cuando tenía Fedora 8.

:suerte:
Título: Re: No existe el directorio
Publicado por: shakka en Martes 16 de Diciembre de 2008, 03:22
Lo probe en Debian Sid, ya trabaja como se espera, a excepcion de una llave de cierre que esta de mas(y que quite) en el codigo que pusiste
Título: Re: No existe el directorio
Publicado por: RadicalEd en Martes 16 de Diciembre de 2008, 14:16
Lo he acomodado de otra forma, ahora estoy tratando de subir unos archivos vía MySQL con el LOAD DATA INFILE, pero me sale este error:
Citar
mysql> LOAD DATA INFILE '/var/www/upload/cab/f5541008.prn' INTO TABLE tabla FIELDS TERMINATED BY '|';
ERROR 1045 (28000): Access denied for user 'usdist'@'%' (using password: YES)
Título: Re: No existe el directorio
Publicado por: RadicalEd en Martes 16 de Diciembre de 2008, 14:38
Le asigne todos los permisos al usuario, pero ahora me saca este error:
Citar
ERROR 13 (HY000): Can't get stat of '/var/www/upload/cab/f5541008.prn' not found (Errcode: 2)
Título: Re: No existe el directorio
Publicado por: RadicalEd en Martes 16 de Diciembre de 2008, 15:53
Ya lo pude arreglar, tuve que:
1) Darle permisos de ejecución chmod +x a todo el path donde están los archivos a subir, ósea, un chmod +x desde /var, hasta /var/www/upload
2) Darle permisos 777 a los archivos (no me pregunten por qué??? pero sino le daba permisos tampoco funcionaba)
3) Darle permisos GRANT ALL PRIVILEGES al usuario MySQL

Y ahí si funciono, gracias
Título: Re: No existe el directorio
Publicado por: m0skit0 en Martes 16 de Diciembre de 2008, 16:12
Cita de: "Edo"
3) Darle permisos GRANT ALL PRIVILEGES al usuario MySQL
Cuidado con esto porque cualquier exploit puede dejarle al atacante con los privilegios del usuario mysql
Título: Re: No existe el directorio
Publicado por: RadicalEd en Martes 16 de Diciembre de 2008, 16:49
Las personas que usan la aplicación no tienen tantos conocimientos como para eso, además no es una aplicación donde puedas entrar directamente solamente los clientes saben la dirección por la cual entrar, quien quiera entrar le tocaría usar ingenieria social para eso. :huh:  :huh: