Foros del Web » Programando para Internet » PHP »

subir nivel en directorio con subdirectorios

Estas en el tema de subir nivel en directorio con subdirectorios en el foro de PHP en Foros del Web. buenas. tengo un sistema por medio del cual cada vez que se registra un cliente, se crea en el servidor un directorio. este cliente puede ...
  #1 (permalink)  
Antiguo 02/04/2007, 05:24
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
subir nivel en directorio con subdirectorios

buenas. tengo un sistema por medio del cual cada vez que se registra un cliente, se crea en el servidor un directorio. este cliente puede acceder a su panel de control y desde él puede subir archivos, borrar archivos o crear subdirectorios dentro de este directorio específico suyo. bien.

la aplicación, en el panel principal de este cliente en cuestión (panel que no es más que SU directorio) muestra los archivos que tiene en ese directorio principal o raiz y también los subdirectorios que tiene creados en el mismo. el tema está en que en ese panel principal, tengo programado que aparezca el enlace "subir nivel", ideado en un principio para que cuando estuviera en un subdirectorio, al pinchar volviera al directorio que lo contiene. pero el problema es que este "subir nivel" me aparece tanto en los subdirectorios (que es donde debería aparecer) como en el directorio principal del cliente donde hí no tendría que aparecer, pues si aparece ahí y se hace click en él me lleva a la carpeta donde tengo alojado todos los archivos del sistema.
es decir, quiero esa utilidad pero que sólo aparezca cuando estamos dentro de un subdirectorio del directorio de ese cliente. para ello, lo hago así:

Código PHP:
if(!isset($path))
    {
        
$path "$nombre"
//donde la variable nombre recoge el nombre que el usuario da al registrarse y por lo tanto, el nombre del directorio principal//
    
}

    if (
$handle opendir($path)) 
    {
//con esto me dice el directorio en el que estoy (directorio o subdirectorio, es decir, si pincho en un subdirectorio, me aparece el nombre del subdirectorio en el que estoy. si estoy en el directorio principal, me aparece el nombre del directorio principal
        
$curDir substr($path, (strrpos(dirname($path."/."),"/")+0));
        print 
"<br>Directorio Actual: <b>".$curDir."</b>&nbsp;&nbsp"
//con esto hago lo que os comentaba. lo que quiero es que sólo aparezca cuando estoy en subdirectorios.         
$up substr($path0, (strrpos(dirname($path."/."),"/")));
        print 
"|&nbsp;&nbsp;<a href='index.php?mod=10&path=$up' class=textenlace3>Subir Nivel</a> 
sabéis como puedo hacerlo?
  #2 (permalink)  
Antiguo 02/04/2007, 10:45
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: subir nivel en directorio con subdirectorios

Añade otro if():

- si estas en un subdirectorio añades el enlace
- si no lo estas no lo añadas

A veces esta bien pensar en cómo dices las cosas para entender la lógica de lo que quieres hacer.

Si te fijas tu mismo has dado con la solución.

Saludos,
__________________
sergiold
  #3 (permalink)  
Antiguo 02/04/2007, 13:12
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: subir nivel en directorio con subdirectorios

si, si eso ya lo he probado. el problema es que cómo sé yo cuando estoy en el directorio, es decir, la lógica la entiendo. yo digo: si estoy en un subdirectorio, que aparezca el enlace; en caso contrario, que no aparezca.

pero no soy capaz de cuadrarlo....
algún cablecito?
  #4 (permalink)  
Antiguo 03/04/2007, 01:51
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: subir nivel en directorio con subdirectorios

a ver, yo lo que tengo es esto:
recojo el nombre del directorio (que viene dado por el nombre que dio el usuario al registrarse. lo recojo a través de la variable $nombre y así digo que la variable $path=$nombre
Código PHP:
if(!isset($path)) 
    { 
        
$path "$nombre";  
//donde la variable nombre recoge el nombre que el usuario da al registrarse y por lo tanto, el nombre del directorio principal// 
    

ahora detecto el directorio o subdirectorio en el que estoy:
Código PHP:
 if ($handle opendir($path))  
    { 
//con esto me dice el directorio en el que estoy (directorio o subdirectorio, es decir, si pincho en un subdirectorio, me aparece el nombre del subdirectorio en el que estoy. si estoy en el directorio principal, me aparece el nombre del directorio principal 
        
$curDir substr($path, (strrpos(dirname($path."/."),"/")+0)); 
        print 
"<br>Directorio Actual: <b>".$curDir."</b>&nbsp;&nbsp"
y por último, pongo el enlace "subir de nivel" que aparecerá en la web y me permitirá subir al directorio anterior:
Código PHP:
//con esto hago lo que os comentaba. lo que quiero es que sólo aparezca cuando estoy en subdirectorios.          
$up substr($path0, (strrpos(dirname($path."/."),"/"))); 
        print 
"|&nbsp;&nbsp;<a href='index.php?mod=10&path=$up' class=textenlace3>Subir Nivel</a> 
el tema está en que este enlace sólo quiero que aparezca cuando estemos dentro de un subdirectorio. ya sé que es con un condicional: si estoy en el subdirectorio, que aparezca; pero si estoy en el directorio principal, que no aparezca, porque si aparece permitirá al visitante subir de nivel e ir al directorio raíz de la web que es el contiene todas las carpetas. no sé si me explico.
sabéis como puedo poner este condicional?
  #5 (permalink)  
Antiguo 05/04/2007, 00:14
Avatar de estibaliz2006  
Fecha de Ingreso: noviembre-2006
Mensajes: 439
Antigüedad: 17 años, 5 meses
Puntos: 1
Re: subir nivel en directorio con subdirectorios

tenéis idea de cómo hacer esto?
  #6 (permalink)  
Antiguo 05/04/2007, 06:47
 
Fecha de Ingreso: octubre-2004
Mensajes: 751
Antigüedad: 19 años, 6 meses
Puntos: 4
Re: subir nivel en directorio con subdirectorios

La cuestión sería que si sabes el nombre del directorio principal puedes comparar el path del directorio actual con el path del directorio principal. Si son iguales es que está en el directorio principal si no está en otro subdirectorio.

Saludos,
__________________
sergiold
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 17:53.