Foros del Web » Programando para Internet » PHP »

desafío con directorios

Estas en el tema de desafío con directorios en el foro de PHP en Foros del Web. hola a todos. veréis: tengo un sistema mediante el cual, los usuarios pueden registrarse en él solicitando a través de un formulario una serie de ...
  #1 (permalink)  
Antiguo 01/04/2007, 03:52
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
desafío con directorios

hola a todos. veréis: tengo un sistema mediante el cual, los usuarios pueden registrarse en él solicitando a través de un formulario una serie de campos básicos como pueden ser el nombre, apellidos, email y password. bien. a la vez que el usuario se registra, el sistema crea en el servidor un directorio con el nombre de registro de ese usuario. a su vez, los datos de nombre, apellidos, email y password se introducen en la tabla "datos" de la base de datos "usuarios". esto lo hago así:

Código PHP:
$cnx mysql_connect("localhost""user""pass"); 
mysql_select_db("usuarios"$cnx); 

$nombre=$_POST['nombre'];
$apellidos=$_POST['apellidos'];
$emaill=$_POST['email'];
$password=$_POST['password'];
$cnx mysql_query("select count(*)  from clientinteg where nombre='$nombre' or email='$email'");  

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);  
chmod("$DESTINO"0777);     

///meto los datos en la tabla "datos"    
 
mysql_query("INSERT INTO datos(nombre,apellidos,email,password) VALUES('$nombre','$apellidos','$email','$password')");
///redirijo a la página de éxtido
header("Location: exito.php");

bien. este nuevo usuario registrado, puede acceder a su panel de control desde el cual puede subir archivos a su directorio, modificar sus datos, etc... pero también puede crear subdirectorios dentro de su propio directorio. así, esto lo hago de la siguiente manera:
Formulario por el que pido el nombre que quiere para el nuevo directorio (que estaría dentro de su directorio personal:
Código PHP:
<tr>
<
td>
Nombre del Nuevo Subdirectorio:</td>
<
td>
<
input type="text" name="directorio"></td>
</
tr
archivo por el que proceso ese nuevo nombre del subdirectorio:
Código PHP:
session_start();
$_SESSION['email']=$email
$_SESSION['nombre']=$nombre;
$_SESSION['apellidos']=$apellidos
$directorio=$_POST['directorio'];

if(!
file_exists($DESTINO)) //comprobamos que existe o no el nuevo subdirectorio

///creo la nueva carpeta con ese nombre y doy los permisos que quiero 
 
$DESTINO="$nombre/$directorio";
mkdir($DESTINO,0777);  
chmod("$DESTINO"0777);    
///donde $nombre es la variable que recoge el nombre del directorio raiz (es decir, el directorio que se creó con el nombre de usuario cuando el usuario se registró) y donde $directorio es la variable que recoge el nombre del nuevo subdirectorio, recogida del formulario anterior.
y una vez creadoredirijo a la página de éxito:
header("Location: exito1.php");

bien. esto es lo que tengo a grandes rasgos. ahora con estos datos lo que quiero saber es:
1) cómo hago al usuario para darle la posibilidad de cambiarle el nombre a ese nuevo directorio que ha creado?
2) cómo hago al usuario para darle la posibilidad de eliminar (y con ello todos los archivos que estén dentro) ese nuevo directorio que ha creado?
3) y la última, cómo hago para mover ficheros? es decir, supongamos que el usuario sube al directorio principal o raiz (el creado automáticamente por el sistema cuando se registra) un determinado fichero 'documento.doc'. cómo hago para que el usuario pueda mover ese fichero del directorio raíz al subdirectorio creado (o incluso mover ficheros entre los diferentes subdirectorios creados?.

si podéis ayudarme, os lo agradecería.
besos...
  #2 (permalink)  
Antiguo 01/04/2007, 06:59
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: desafío con directorios

Hola,


1) cómo hago al usuario para darle la posibilidad de cambiarle el nombre a ese nuevo directorio que ha creado?

Puedes pedirle el nuevo nombre mediante un formulario y luego hacer algo asï: reaname(nombre_viejo, nombre_nuevo);

2) cómo hago al usuario para darle la posibilidad de eliminar (y con ello todos los archivos que estén dentro) ese nuevo directorio que ha creado?

Eso lo puedes hacer con varias preguntas y buclesm en una funcion recursiva:

Código:
function eliminar ($ruta){
   $directorio = dir($path); 

   while ( $archivo = $directorio->read() ) {
      if ($archivo != '.' and $archivo != '..'){
         if ( is_dir($archivo) )
            eliminar($ruta . $archivo);
         else
            unlink($ruta . $archivo);
      }
   } 
   $directorio->close();
}
3) y la última, cómo hago para mover ficheros? es decir, supongamos que el usuario sube al directorio principal o raiz (el creado automáticamente por el sistema cuando se registra) un determinado fichero 'documento.doc'. cómo hago para que el usuario pueda mover ese fichero del directorio raíz al subdirectorio creado (o incluso mover ficheros entre los diferentes subdirectorios creados?.

Pues podrías copiarlo con copy y luego eliminarlo del directorio en donde no lo quieras...

Espero que te sirva de algo. Saludos.
  #3 (permalink)  
Antiguo 01/04/2007, 09:31
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: desafío con directorios

sigo con dudas. a ver:

1) renombrar directorios:
no comprendo porque según lo que proponéis, debería en la página en la que está el formulario para dar el nuevo nombre al directorio debería recoger mediante sesiones o lo que sea el nombre del directorio que quiero renombrar, y luego, hacer lo siguiente:

Código PHP:
session_start();
 
$_SESSION[directorio]=$directorio;///donde esta variable es el nombre del directorio que quiero renombrar.
///capturo el nuevo nombre del directorio
$directorio1=$_POST['directorio1'];

$DESTINO="$nombre/$directorio"///antiguo directorio
$DESTINO1="$nombre/$directorio1";///nuevo directorio

rename ($DESTINO$DESTINO1); 
es eso lo que me decís? estaría bien así?

2) función eliminar: creo que esta no tengo problemas por ahora.
3) mover ficheros: ko total. no lo entiendo qué debo hacer. si tengo un fichero en el directorio principal o en uno de esos subdirectorios, como lo muevo a otro subdirectorio?
  #4 (permalink)  
Antiguo 01/04/2007, 10:02
 
Fecha de Ingreso: marzo-2007
Mensajes: 78
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: desafío con directorios

Hola,

1) es eso lo que me decís? estaría bien así?

Si, sien $nombre tienes bien la ruta, te debe funcionar bien.

3) mover ficheros: ko total. no lo entiendo qué debo hacer. si tengo un fichero en el directorio principal o en uno de esos subdirectorios, como lo muevo a otro subdirectorio?
Imagina que en $directorio tienes el directorio en el que está el fichero actualmente, en $_POST['directorio1'] el directorio al que quieres mover el fichero, y por último en $fichero tienes el fichero concreto a mover... Pues basta con hacer copy ($ruta . $directorio . "/" . $fichero, $ruta . $_POST['directorio1'] . "/" . $fichero) para copiarlo en el nuevo directorio, y unlink($ruta . $directorio . "/" . $fichero) para borrarlo del directorio antiguo.

Espero haberte ayudado. Igual alguien postea otras formas más sencillas. Suerte.
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 08:31.