Foros del Web » Programando para Internet » PHP »

mostrar datos de directorio según usuario

Estas en el tema de mostrar datos de directorio según usuario en el foro de PHP en Foros del Web. buenas. os cuento. tengo un formulario mediante el cual, los usuarios registrados, pueden subir documentos a un directorio del servidor llamado 'documentos'. esos documentos que ...
  #1 (permalink)  
Antiguo 18/02/2007, 00:58
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 13 años, 6 meses
Puntos: 0
mostrar datos de directorio según usuario

buenas. os cuento. tengo un formulario mediante el cual, los usuarios registrados, pueden subir documentos a un directorio del servidor llamado 'documentos'. esos documentos que pueden subir son imágenes, pdf, etc.. cualquier documento. en una base de datos llamémosla 'documentacion' exite a su vez una tabla que recoge los datos de ese formulario que envían los usuarios registrados. esta tabla se llama 'datos', con estos campos:
************************************************** ********
iddatos--autonumérido
usuario--varchar--usuario que envía el documento
documento--varchar--ruta del documento que envía el usuario y que se almacena en la carpeta (o directorio) 'documentos'.
************************************************** ********

bien. mediante este código que os muestro a continuación, consigo leer todos los archivos que hay en el directorio 'documentos': me da el nombre del archivo, el tipo de archivo y el tamaño del archivo. el código es este:

Código PHP:
   $path $_GET['path'];
   if(!isset(
$path))
   {
       
$path "documentos";
   }
   if (
$handle opendir($path)) 
   {
       
$curDir substr($path, (strrpos(dirname($path."/."),"/")+1));
       print 
"Directorio Actual: ".dirname($path."/.")."<br>************************<br>";

       while (
false !== ($file readdir($handle))) 
       {
           if (
$file != "." && $file != ".."
           {
               
$fName $file;
               
$file $path.'/'.$file;
               if(
is_file($file))
               {
                   print 
"&nbsp;&nbsp;<a href='".$file."'>".$fName."</a>&nbsp;&nbsp;&nbsp; ".filesize($file)." bytes<br>";
               }
               
           }
       }

       
closedir($handle);
   } 
pero yo lo que quiero es ir más allá. es decir, que mediante este código que me lee los archivos del directorio 'documentos' me muestre únicamente los que corresponden a un determinado usuario. es decir, hacer una consulta a la base de datos y dependiendo del usuario que sea, aprovechando este código, me muestre únicamente los documentos que ha subido ese usuario. cómo hago esto?
  #2 (permalink)  
Antiguo 18/02/2007, 09:39
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 17 años, 10 meses
Puntos: 6
Re: mostrar datos de directorio según usuario

hola para ordenar un poco los archivos de cada usuario
mejor que crees una carpeta distinta por usuario
y seria algo como
.................................
$path = $_GET['path'];
if(!isset($path))
{
$path = "documentos/usuario";
}
..................

Si no lo quieres o puedes hacer asi
y ya que lo haces desde la base de datos, no necesitas hacer un recorrido por la carpeta
Simplemente haz una consulta a la base de datos y enlaza a los archivos del usuario
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #3 (permalink)  
Antiguo 18/02/2007, 11:30
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 13 años, 6 meses
Puntos: 0
Re: mostrar datos de directorio según usuario

dices que cree una carpeta por usuario. el problema está en que sería necesario que en el momento de cumplimentar el usuario ese formulario (es decir, se registrase), se crease esa carpeta asociada al mismo automáticamente. pero, ¿y cómo hago eso?
  #4 (permalink)  
Antiguo 18/02/2007, 17:56
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 17 años, 10 meses
Puntos: 6
Re: mostrar datos de directorio según usuario

Hola
Yo tuve que hacerlo una vez para una web y lo hice de esta manera
Código PHP:
function crear_carpeta($nombrecarpeta){
$nueva_carpeta $_SERVER['DOCUMENT_ROOT']. "/galeria/".$nombrecarpeta."";
    if (!
is_dir($nueva_carpeta)) { 
        
mkdir($nueva_carpeta); 
        
    } 
    

llamas a la funcion de esta forma donde id usuario es el nombre del usuario, la id de usuario, o lo que utilices para diferenciarlos.
crear_carpeta($id_usuario);
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
  #5 (permalink)  
Antiguo 19/02/2007, 01:20
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 13 años, 6 meses
Puntos: 0
Re: mostrar datos de directorio según usuario

ok, pero ¿cóm implemento esto en el formulario para que, automáticamente, al registrarse el usuario, se cree su carpeta con el nombre de pila que de el usuario al registrarse?

es decir, supongamos que tengo el formulario siguiente:

Código PHP:
<form action="procesar.php">
//campo nombre (que a su vez daría el nombre a la carpeta que se crearía de este usuario
nombre:
<
input type="text" name="nombre"></input>
//campo contraseña
password:
<
input type="password" name="pass"></input>
<
input type="submit" value="enviar"></input
donde meto yo todo eso en este formulario para que automáticamente me genere esa carpeta a este usuario y con el nombre de ese usuario?
  #6 (permalink)  
Antiguo 19/02/2007, 04:20
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 13 años, 6 meses
Puntos: 0
Re: mostrar datos de directorio según usuario

sabéis como implementarlo en el formulario?
  #7 (permalink)  
Antiguo 19/02/2007, 06:32
Avatar de dopon  
Fecha de Ingreso: julio-2005
Ubicación: Cucuta / Colombia
Mensajes: 493
Antigüedad: 14 años, 4 meses
Puntos: 1
Re: mostrar datos de directorio según usuario

NO se implementa en el formulario s eimplementa en procesar.php muestranos el code de procesar.php
  #8 (permalink)  
Antiguo 19/02/2007, 06:41
 
Fecha de Ingreso: junio-2006
Mensajes: 22
Antigüedad: 13 años, 6 meses
Puntos: 0
Re: mostrar datos de directorio según usuario

perdón, perdón y mil perdones, he dicho como se implementa en el formulario cuando es cierto, es en procesar.php. bueno, el código que tengo de procesar es bastante sencillo: me pasa los datos a la base de datos, los datos de nombre de usuario y password. como anexo eso otro con lo que yo quiero:

código procesar.php
Código PHP:
$cnx mysql_connect("localhost""user""pass"); 
mysql_select_db("basededatos"$cnx); 

$nombre=$_POST[nombre];
$pass=$_POST[pass]; 

mysql_query("INSERT INTO usuarios(nombre,pass) VALUES('$nombre','$pass')"); 
    
header("Location: exito.php"); 
  #9 (permalink)  
Antiguo 19/02/2007, 10:53
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 13 años
Puntos: 1
Re: mostrar datos de directorio según usuario

hola. hombre, yo haría esto:

formulario 'carpeta':
Código PHP:
<form action="procesarcarpeta.php" method=post
nombre
<
input type="text" name="usuario"></input><br
password
<
input type="password" name="password"></input> <br>
<
input type="submit" value="enviar"></input
archivo 'procesarcarpeta.php¡:
Código PHP:
$cnx mysql_connect("localhost""user""pass");  
mysql_select_db("basededatos"$cnx);  

$usuario=$_POST[usuario]; 
$password=$_POST[password];  
/////con esto recoges como se va a llamar la carpeta (igual que el nombre del usuario
$DESTINO="$usuario";
 
///creas la carpeta con ese nombre y das los permisos que quieras
{mkdir($DESTINO,0777); } 



mysql_query("INSERT INTO usuarios(usuarios,password) VALUES('$usuario','$password')");  
     
     
header("Location: index.php?mod=1"); 
lo que yo me pregunto ahora, para ya mejorar el tema es como hacer para que vea si ese usuario ya existe y la carpeta ya está creada-
  #10 (permalink)  
Antiguo 19/02/2007, 12:17
Avatar de ginitofl  
Fecha de Ingreso: diciembre-2006
Ubicación: Lima Perú
Mensajes: 349
Antigüedad: 13 años
Puntos: 22
Re: mostrar datos de directorio según usuario

Hola Tiomac yo optaria por hacer lo siguiente en vez de crear directorios para cada usuario, la pregunta es como? bueno sencillo creo dos tablas una llamada usuarios y y otra llamada documentos y los campos serian:

TABLA USUARIOS:
id_usuario PRIMARY KEY
login_usuario
pass_usuario
apeanom_usuario
......
y demas datos que creas conveniente.

LA TABLA DOCUMENTOS:
id_documento PRIMARY KEY
id_usuario FORING KEY DE LA TABLA USUARIOS
nombre_documento
ruta_documento

con esto ya no crearias carpetas por cada usuario, simplemente arias una consulta de este tipo:

select * from documentos where id_usuario=$laidquepasasdealgunusuario

con eso solucionas el problema.

pero me imagino que ya tienes implementado el sistema de usuarios y que estos inicien sesion.

bueno cualquier consulta solo pregunta.
  #11 (permalink)  
Antiguo 19/02/2007, 22:09
Avatar de Gurrutello  
Fecha de Ingreso: enero-2002
Ubicación: Ontario,Toronto [Canada]
Mensajes: 2.017
Antigüedad: 17 años, 10 meses
Puntos: 6
Re: mostrar datos de directorio según usuario

Hola
la funcion que puse antes
---------
tu codigo quedaria.
$cnx = mysql_connect("localhost", "user", "pass");
mysql_select_db("basededatos", $cnx);

$nombre=$_POST[nombre];
$pass=$_POST[pass];

mysql_query("INSERT INTO usuarios(nombre,pass) VALUES('$nombre','$pass')");
crear_carpeta($nombre);
header("Location: exito.php");
exit;
Lo de ponerlo en una funcion es mas que nada para que no tengas que repetir el codigo donde lo necesites, solo llamar a la funcion.
saludos
__________________
Un Saludo
www.tutores.org
Asp | Php | Javascript | Perl | Coldfusion | Flash | +- 2000 codigos
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 02:59.