Foros del Web » Programando para Internet » PHP »

error en los permisos de directorio creado y archivos subidos a él

Estas en el tema de error en los permisos de directorio creado y archivos subidos a él en el foro de PHP en Foros del Web. hola. a ver, tengo la siguiente aplicación mediante la cual, un usuario, al registrarse en la aplicación, automáticamente se crea una carpeta o directorio en ...
  #1 (permalink)  
Antiguo 12/03/2007, 09:55
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
error en los permisos de directorio creado y archivos subidos a él

hola. a ver, tengo la siguiente aplicación mediante la cual, un usuario, al registrarse en la aplicación, automáticamente se crea una carpeta o directorio en el servidor con su nombre, y a esta carpeta le asigno permisos 0777.
el código que uso para procesar el formulario de registro, cuyos campos son nombre, apellidos, empresa, email y password, es este:

Código PHP:
$cnx mysql_connect("servidor""user""pass");  
mysql_select_db("basededatos"$cnx); 
$nombre=$_POST['nombre']; 
$apellidos=$_POST['apellidos']; 
$empresa=$_POST['empresa']; 
$email=$_POST['email']; 
$password=$_POST['password']; 

/////con este código compruebo si el usuario o el email ya existen 
$cnx mysql_query("select count(*)  from tabladelabase where nombre='$nombre' or email='$email'");   
    if(
mysql_result($cnx,0)) {   
        echo 
'El usuario ya existe en la base de datos o ya está registrado el email. Haz click <a href="javascript:history.back()">aquí</a> para regresar.' ; die();   
    } else {   
        
$password md5(md5($_POST["password"]));   
     
////creo el directorio 
if(!file_exists($DESTINO)) //comprobamos que existe o no el directorio 
{  
///creo la carpeta con ese nombre y doy los permisos que quiero 
     
$DESTINO="$nombre"
      
mkdir($DESTINO,0777);   
}      

////por último, introducimos en la tabla de la base de datos los campos 
 
mysql_query("INSERT INTO tabladelabase (nombre,apellidos,empresa,email,password) VALUES('$nombre','$apellidos','$empresa','$email','$password')"); 

////hecho esto, envío un email al usuario con sus datos de acceso. 
         
mail($email,"Ya estás registrado!","Hola, $nombre $apellidos!\n\nHa sido registrado!\n\nSu nombre de usuario es: $nombre\nSu contraseña es: ".$_POST["password"]."\n\nPuedes ingresar mediante el siguiente link: http://www.miweb.com/login\n\nGracias por registrarte!\nExitos","From: <[email protected]>\r\n");  
            

        echo 
'Has sido registrad@. Haz click aquí <a href="index.php">aquí</a> para regresar a la página principal.'; die();   
   } 
hecho esto, y creado ese directorio, el usuario puede acceder mediante un panel a su área (directorio creado) comprobando previamente su nombre de usuario y password. una vez validado esos dos conceptos, el usuario puede subir archivos mediante un formulario y los archivos subidos se almacenan en su carpeta o directorio. a su vez, se registran en una tabla de una base de datos, con los campos resumen, que recoge una breve descripción del documento subido y documento, que recoge la ruta que tiene el archivo en el servidor. para procesar esto lo hago así:

Código PHP:
session_start();
$_SESSION['nombre']=$nombre;
$_SESSION['apellidos']=$apellidos;
$cnx mysql_connect("localhost""user""pass"); 
mysql_select_db("basededatos"$cnx);  

if(
$_post['archivo']=""
   { 
      
$ruta="no imagen"   ;
      
$error=false;  
   } 
else 
   {  
        
$error=false
   if(
$_FILES['archivo']['name'])  
 {  
 
$local $_FILES['archivo']['name'];  
 
$remoto $_FILES['archivo']['tmp_name'];  
 
$extension explode("."$local);  
$n count($extension)-1;  
 
$miext = array('doc''xls''ppt''pps''jpg''gif''bmp''tif''mdb''pdf''exe''txt''htm''html''avi''mp3''mpg''wav');
if(
in_array($extension[$n], $miext))  
{
 
// La variable para la BD 

$ruta "modulos/$nombre/" $local
if(
is_uploaded_file($remoto)) 
 { 
 if(!
move_uploaded_file($remoto$ruta)) 
 { 
$error=true

 } 
else 
 { 
$error=true

 } 
else 

$error=true
 } 
 } 
 } 
if(!
$error
   { 
$resumen=$_POST['resumen']; 
mysql_query("INSERT INTO tabla (documento,resumen) VALUES('$ruta','$resumen')"); 
 
header("Location: index.php"); 
 } 

Bien. todo lo hace correctamente. el problema aparece a la hora de los permisos. resulta que, aunque yo cree el directorio con permisos plenos (0777), me voy al servidor y le da únicamente 0755, y a los archivos subidos, le da sólamente permisos 0600. pero yo quiero que tanto los archivos subidos como los directorios, tengan permiso 0777. cómo hago esto? qué hago mal?

  #2 (permalink)  
Antiguo 12/03/2007, 11:32
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
De acuerdo Re: error en los permisos de directorio creado y archivos subidos a él

Podrias intentar resolverlo con chmod()


Saludillos.
  #3 (permalink)  
Antiguo 12/03/2007, 11:35
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: error en los permisos de directorio creado y archivos subidos a él

Haz probado usar, chmod , aplicandolo a los directorios creados y al momento de subir los archivos.-?

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.Com
  #4 (permalink)  
Antiguo 12/03/2007, 11:37
Avatar de xyyy7  
Fecha de Ingreso: enero-2004
Ubicación: Maracay.-
Mensajes: 637
Antigüedad: 20 años, 3 meses
Puntos: 5
Re: error en los permisos de directorio creado y archivos subidos a él

Cita:
Iniciado por mauled Ver Mensaje
Podrias intentar resolverlo con chmod()


Saludillos.
Bueno se me adenlanto mauled, pero es verdad intenta con chmod, ya somo dos con la misma opcion.-

Nuevamente,

Saludos.-
__________________
Maracay Edo Aragua - Venezuela :
Mi Favorita :
http://www.MySQL.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 21:40.