Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: RadicalEd en 15 Diciembre 2008, 23:15 pm



Título: No existe el directorio
Publicado por: RadicalEd en 15 Diciembre 2008, 23:15 pm
Hola chicos de elhacker.net, 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
  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.  
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: WHK en 16 Diciembre 2008, 03:27 am
Porque le deniega el acceso, php trabaja con el user www-data asi que no podrá acceder a ningún directorio mas arriba de /home/ , si le sacas el error_reporting verás que el error te dice algo así como.. access denied on read /home/usuario/


Título: Re: No existe el directorio
Publicado por: RadicalEd en 16 Diciembre 2008, 15:26 pm
He tratado de hacerlo directamente desde el mysql ya cambiandole tanto permisos a carpetas como al usuario mysql e incluso he entrado como root y como admin de mysql y me sale este error:
Citar
mysql> LOAD DATA INFILE '/var/www
/upload/cab/f5541008.prn' INTO TABLE tabla_cab FIELDS TERMINATED BY '|';
ERROR 13 (HY000): Can't get stat of '/var/www/upload/cab/f5541008.prn' (Errcode: 13)
Alguién sabe que podría ser???


Título: Re: No existe el directorio
Publicado por: RadicalEd en 16 Diciembre 2008, 15:54 pm
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