Comunidad de diseño web y desarrollo en internet online

Error al cerrar php

Citar            
MensajeEscrito el 25 Sep 2008 03:37 am
Buenas, primero aprovecho para saludarlso a todos ya que soy nuevo =)

Buen mi duda es la siguiente, agarre un code para ver como funcionaba y mi sorpresa, que me tira error en la ultima linea al cerrar el php, nose que puede ser lo revise, pero no encuentro el problema seguro es algo bobo pero nose no lo veo.
Aver si saben que puede ser:

Código :

<?php
if($_GET['path']==""){
$jiji=dirname($Lugar_shell);
$directorio=dir($jiji);
$ruta=$jiji;
}
else{
$directorio=dir($_GET['path']);
$ruta=$_GET['path'];
}
?>
<?php 
$path="$ruta"; 
$directorio=dir($path); 
echo "<br><br>"; 
while ($archivo = $directorio->read()) 
{ 
  $extension=filetype($ruta.'/'.$archivo);
 if ($extension=="dir"){
echo "<font color=red><b>(<a ";
echo "href=?path=$ruta/$archivo>$archivo</a>)</b></font><br>"; 
}
else {
echo "<tr><td><a href=?edit=$ruta/$archivo>$archivo</a><br></td>"; 
} 
$directorio->close(); 
echo "<br><br>";
?> 
 


El error es en la ultima linea el "?>"
Saludos y gracias

Pd: De paso, si alguien me explica que es esto "$directorio->close(); " el "->" nunca lo habia visto, para que sirve ?

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2008 03:59 am
¿Cual es el error ? Porque yo lo único que veo es una página de código en la que tu dices que da problemas el tag de cierre "?>". Si nos dijeras cual es el mensaje de error tenemos ya bases para intentar averiguar cual es el problema.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 25 Sep 2008 05:14 am
Falta la llave de cierre del while, antes de directorio->close().
Por cierto, el "->" es para acceder a las propiedades y métodos de los objetos, como el punto en otros lenguajes.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 25 Sep 2008 04:22 pm
Tenias razon, es que como ya habia un "}" no me di cuenta pense que lo cerraba. Le agrege otro y ya corre bien.

escribió:

Por cierto, el "->" es para acceder a las propiedades y métodos de los objetos, como el punto en otros lenguajes.


Mmm no entiendo bien, por ejemplo en el ->close() que es lo que haria ?
Si tenes algun link con info sobre esto no me moelstaria leerlo es que busque por google y no encontre.

gracias por la ayuda =)

Saludos

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2008 04:37 pm
El ->close() llama al método close() del objeto $directorio.

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 25 Sep 2008 05:15 pm
Gracias ya vi. Igual lo puse sin el close() y va igual no cambia en nada...
Entendi el codigo ya creo, la unica duda que me queda seria:

Código :

$extension=filetype($ruta.'/'.$archivo);


el '/' para que sirve yyyy

Código :

$archivo>$archivo
para que esta el ">"

Muchras gracias.

Saludos

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 25 Sep 2008 07:43 pm
a ese script le hace falta una parte que es una clase de php para el manejo de archivos

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 26 Sep 2008 01:54 am

  • El método close(), en este caso, cierra el objeto $directorio, liberando los recursos que este objeto usa.
  • También funciona sin que uses el close, pero mantiene los recursos de la máquina ocupados.
  • El slash (/) es parte de una dirección web formada por lo que esté en la variable $ruta y la variable $archivo.
  • Eso de "$archivo>$archivo" a lo que te refieres no tiene ningún significado en php, es que no estás viéndolo correctamente (es parte de una eqitueta html)

    Código PHP :

    echo "<font color=red><b>(<a ";
    echo "href=?path=$ruta/$archivo> $archivo </a>)</b></font><br>"; 
    

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 27 Sep 2008 03:21 am
Gracias ya veo que estupido con lo de $archivo>$archivo no me di ceunta jajaja.
y sobre lo del slash ahora lo veo, pero porque mete los puntos ahi .'/'. no se puede poner $ruta'/'$archivo ?

Saludos gracias =)

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Sep 2008 06:50 am
Los puntos son para concatenar texto (es como el signo de suma "+" en otros lenguajes). En ese caso, fíjate que "$archivo" y "$ruta" son dos variables, mientras que el slash (/) es un texto (por eso está entre comillas), con los puntos se concatenan los tres valores.
Creo que este es un buen momento para que visites php.net, sobre todo el Manual de PHP

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 27 Sep 2008 03:58 pm
Si pero, yo probe ponerlo sin puntos y va igual por ejemplo "a href=?edit=$ruta/$archivo>" ahi direcciona bien sin el punto.
Sobre lo del manual php, ya habia estudiado php pero hace un tiempo, y ahroa lo retome, pero anoche estube rehaciendo el code este y me fui acordando bastante, pero mira, rehice el code para ver si me salia, y fui haciendole cambio, cuestion que el code quedo perfecto, pero tiene un error, a la hora de listar los ficheros, una vez que se le clickea a un directorio redirecciona pero queda en el mismo sitio. Lo raro es que al ver la url es la misma en los 2 codes. Mira te dejo el code que hize anoche.

Código :

<?php
$shell=$_SERVER[SCRIPT_FILENAME];
$ruta=getcwd();
$dirshell=dirname(shell);
?>
<?php
$directorio=dir($ruta);
echo "<br><br>";
while ($archivo = $directorio->read())
{ 
   $ext=filetype($archivo);
   if ($ext=="dir"){
echo "<font color=red><b>(<a href=?path=$ruta/$archivo>$archivo</a>)</b></font><br>"; 
}
else{
   echo "<a href=?edit=$ruta/$archivo>$archivo</a></font><br>";
   }
   }
   $directorio->close()
   ?>


La url queda ?path= y ahi todo lo mismo y en el otro code igual, pero a la hora de abrir el directorio mi codigo no lo hace :(

Nose me ocurre que puede ser.

Saludos

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Sep 2008 05:22 pm

krosty_ufc escribió:

Si pero, yo probe ponerlo sin puntos y va igual por ejemplo "a href=?edit=$ruta/$archivo>" ahi direcciona bien sin el punto.

Eso es porque es una cadena con comillas dobles, que evalúa las variables que se encuentren dentro.

krosty_ufc escribió:

La url queda ?path= y ahi todo lo mismo y en el otro code igual, pero a la hora de abrir el directorio mi codigo no lo hace :(

Lo que sucede es que en lugar de cambiar la dirección de la página estas enviando la nueva dirección como una variable get. Prueba quitándole "?path=" a tu código

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 27 Sep 2008 05:33 pm
Lo que pasa es que si le saco el "?path=" tira error, la pagina solicitada no existe. La url me quedaria "veremos.php/data/members/free/tripod/es" etc. y no entra :S
Alguna idea ?
Saludos

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Sep 2008 05:43 pm
Intenta usar una ruta absoluta

Código PHP :

echo "<font color=red><b>(<a href=\"$direcciondetupagina/$directorio/$archivo\">$archivo</a>)</b></font><br>"; 

Por Odin

Claber

639 de clabLevel

2 tutoriales

Genero:Masculino   Premio_Secretos

El valle de las hamacas

firefox
Citar            
MensajeEscrito el 27 Sep 2008 05:46 pm
Lo que yo no veo es donde recuperas el valor de "path" en tu nuevo código. Si no lo capturas de nuevo no veo para qué está. En el código que posteaste originalmente sí está.

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 27 Sep 2008 06:26 pm
Intenta usar una ruta absoluta

Código :

echo "<font color=red><b>(<a href=\"$direcciondetupagina/$directorio/$archivo


Te comento que esto lo pense, pero $direeciondetupagina no la tengo, porque deberia servir para cualquier servidor sin saber la direccion.

Lo que yo no veo es donde recuperas el valor de "path" en tu nuevo código. Si no lo capturas de nuevo no veo para qué está. En el código que posteaste originalmente sí está.


No entiendo bien que es lo que me decis :S. Te cuento que el primer codigo no era mio, y por eso cree el segundo yo solo para ver si habia entendido, pero me esta fallando esto :/

Saludos

Por krosty_ufc

5 de clabLevel



 

firefox
Citar            
MensajeEscrito el 27 Sep 2008 06:56 pm
Pues es sencillo, en el código original se recupera el valor de la variable "path", por ejemplo:

Código PHP :

<?php
if($_GET['path']==""){
$jiji=dirname($Lugar_shell);
$directorio=dir($jiji);
$ruta=$jiji;
}
else{
$directorio=dir($_GET['path']);
$ruta=$_GET['path'];
}
?>
<?php 
$path="$ruta"; 
$directorio=dir($path); 
...

pero en tu código no veo nada de eso, así que no veo la utilidad de líneas como esta:

Código PHP :

echo "<font color=red><b>(<a href=?path=$ruta/$archivo>$archivo</a>)</b></font><br>"; 

Por The Fricky!

Presidente

6168 de clabLevel

3 tutoriales
8 articulos

Genero:Masculino   Bastard Operators From Hell Héroes

Piccola Venezia...

firefox
Citar            
MensajeEscrito el 27 Sep 2008 07:10 pm
Si, pero "$_GET['path']" si no me equivoco eso recuperaria lo de la variable path en un formulario no es asi ?
Pero la cuestion es que aca no hay formulario por ende siempre va a hacer lo primero.
Entonces yo lo simplifique en esto:

Código :

$shell=$_SERVER[SCRIPT_FILENAME];
$ruta=getcwd();
$dirshell=dirname(shell);

Que seria lo mismo si no me equivoco.
Y sobre

Código :

(<a href=?path
tambien lo entiendo ya que en mi codigo no hay ningun path. Pero en mi codigo la variable path contendria el mismo valor de "ruta" no es asi ?
Pero intente hacer href=?ruta y tampoco fue :/
Saludos

Por krosty_ufc

5 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.