Foros del Web » Programando para Internet » PHP »

Problema con permisos al subir archivos

Estas en el tema de Problema con permisos al subir archivos en el foro de PHP en Foros del Web. Hola amigos: Tengo una galería de imágenes donde el administrador puede crear directorios y posteriormente introducir imágenes en dichos directorios. Bien, para crear los directorios: ...
  #1 (permalink)  
Antiguo 07/09/2009, 10:46
Avatar de hvpareja  
Fecha de Ingreso: marzo-2007
Ubicación: En Vélez Málaga (Málaga)
Mensajes: 213
Antigüedad: 17 años, 1 mes
Puntos: 4
Problema con permisos al subir archivos

Hola amigos:

Tengo una galería de imágenes donde el administrador puede crear directorios y posteriormente introducir imágenes en dichos directorios.

Bien, para crear los directorios:

Código PHP:

$mk_dir 
mkdir($nombre_directorio,0777); 
El directorio se crea y, aparentemente, tiene todos los permisos (rwxrwxrwx), según mi gestor ftp.

El problema viene ahora. Cuando intento subir imágenes a este nuevo directorio, no me devuelve ningún error pero la imagen no se sube.

Dato adicional: Si creo la carpeta de forma manual con ftp y le doy los permisos citados anteriormente del mismo modo, la carga de imágenes concluye exitosamente.

He leido algo de "SAFE_MODE" por ahí, pero no estoy seguro y no tengo acceso al servidor para cambiar este parámetro.

¿Alguien puede ayudarme?
__________________
El mejor maestro es el eterno aprendiz.
http://hvpareja.wordpress.com/
  #2 (permalink)  
Antiguo 08/09/2009, 22:08
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema con permisos al subir archivos

Hola
Bueno, intenta 2 cosas
1. Agregar un tercer parametro en la función mkdir y ponlo en true, es decir, algo asi
Código PHP:
$mk_dir mkdir($nombre_directorio,0777,true); 
Y lo que dices de safe mode, si esta activo php revisara si el usuario que esta ejecutando el script es el mismo que puede acceder al directorio donde esta el script

2. El mkdir lo ejecutas luego de conectarte por ftp a través de php o solo ejecutas el mkdir sin conexión a ftp por php?
Podrías probar haciendo conexion ftp por php y luego crear el directorio

Y bueno, sabes que tipo de hosting tienes?
Porque pueden ser restricciones del hosting como tal, o por la versión que tengan de php, o por el sistema operativo del hosting, pues según he leido, en windows se ignora el modo, es decir, los permisos que le pones (0777 u otros)

Y bueno, puedes probar con otros tipos de permisos (0755), (0700)
Intenta esto y nos cuentas
Saludos
  #3 (permalink)  
Antiguo 09/09/2009, 04:57
Avatar de hvpareja  
Fecha de Ingreso: marzo-2007
Ubicación: En Vélez Málaga (Málaga)
Mensajes: 213
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Problema con permisos al subir archivos

Hola morti[...]

Muchas gracias por responderme, a ver si entre los dos conseguimos la solución. Vamos por partes:

Cita:
Iniciado por mortiprogramador Ver Mensaje
Hola
Bueno, intenta 2 cosas
1. Agregar un tercer parametro en la función mkdir y ponlo en true, es decir, algo asi
Código PHP:
$mk_dir mkdir($nombre_directorio,0777,true); 
Eso ya lo he intentado, aunque ese tercer parámetro es el de recursividad y al parecer no tiene nada que ver con los permisos.

Cita:
Iniciado por mortiprogramador Ver Mensaje
Y lo que dices de safe mode, si esta activo php revisara si el usuario que esta ejecutando el script es el mismo que puede acceder al directorio donde esta el script
Esto que dices es lo que me parece más acertado a mi parecer, pero he probado con chown y no consigo cambiar el nombre de usuario. La única diferencia (y lee bien mi pregunta) entre los archivos creados con mkdir y los creados con mi gestor de ftp es el nombre de usuario, y ahi podría estar el problema. Recuerda que puedo agregar archivos a las carpetas (0777) creadas a través de ftp pero no a las carpetas (también 0777) creadas con mkdir.

Cita:
Iniciado por mortiprogramador Ver Mensaje
2. El mkdir lo ejecutas luego de conectarte por ftp a través de php o solo ejecutas el mkdir sin conexión a ftp por php?
Podrías probar haciendo conexion ftp por php y luego crear el directorio
No me conecto en ftp con php porque, mi "inteligente" cliente ha decidido pagar el hosting a una persona y el desarrollo a otra (a mí), y no me fio de que esa otra persona pueda modificar en algún momento la autenticación ftp, así que la opción ftp por php la deshecho.

Cita:
Iniciado por mortiprogramador Ver Mensaje
Y bueno, sabes que tipo de hosting tienes?
Porque pueden ser restricciones del hosting como tal, o por la versión que tengan de php, o por el sistema operativo del hosting, pues según he leido, en windows se ignora el modo, es decir, los permisos que le pones (0777 u otros)
Bueno, lo único que te puedo decir es que el servidor es Unix...


Cita:
Iniciado por mortiprogramador Ver Mensaje
Y bueno, puedes probar con otros tipos de permisos (0755), (0700)
Intenta esto y nos cuentas
Saludos
Esto... esto no lo he probado, pero como ya te digo, el resto de carpetas tienen permisos 0777 y la transferencia de archivos a estas carpetas funcionan correctamente.

Bueno, intentaré cambiar el usuario de alguna otra forma ... muchísimas gracias por responder, ya había tirado la toalla.
__________________
El mejor maestro es el eterno aprendiz.
http://hvpareja.wordpress.com/
  #4 (permalink)  
Antiguo 09/09/2009, 19:56
Avatar de mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 14 años, 7 meses
Puntos: 214
Respuesta: Problema con permisos al subir archivos

Hola
Bueno, pues vamos a ver como solucionamos eso entonces

Se me han presentado dos cosas:

1. Intentar esto

Código PHP:
<?php
$oldumask 
umask(0);
mkdir('mydir'0777); // or even 01777 so you get the sticky bit set
umask($oldumask);
?>
Esto lo encontre en un foro de php

2. Si 1 dio false, pregunto, has intentado cambiar el propietario
luego de crear el directorio con el mkdir que ya tienes?

Seria algo así
Código PHP:
$path 'directoriocreado';
$user_name 'usuarioalqueseledaranpermisos';
// Set the user
chown($path$user_name); 
3, También se podría, una vez creada, volver a trabajarle los permisos asi
Código PHP:
chmod("carpeta"0777); 
Si nada de estos balsamos funciona, podrias probar con el ftp_chmod pero pues esto requiere lo que ya me comentas, es decir, la conexión ftp por php... intentalo solamente, y si con esto te funciona, entonces tendrías que hablar con las partes para que creen un usuario ftp que no sea eliminado por nada... bueno, prueba estas opciones a ver si alguna soluciona algo
Saludos
  #5 (permalink)  
Antiguo 10/09/2009, 04:06
Avatar de hvpareja  
Fecha de Ingreso: marzo-2007
Ubicación: En Vélez Málaga (Málaga)
Mensajes: 213
Antigüedad: 17 años, 1 mes
Puntos: 4
Respuesta: Problema con permisos al subir archivos

Muchas gracias!

Bueno, la verdad es que me he estado informando bastante, además, he probado todo lo que propones.

El resultado de esta batalla es el siguiente:

Mi código está perfectamente, el problema es el servidor. Estoy gestionando el acceso a éste puesto que no tengo permiso para realizar la acción que deseo. Es imposible.

A sí que bueno, mi página está terminada, lo único que me falta es arreglar el server.

Un saludo amigo!
__________________
El mejor maestro es el eterno aprendiz.
http://hvpareja.wordpress.com/
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:07.