elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Ayuda con PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda con PHP  (Leído 2,343 veces)
UNFORMAT

Desconectado Desconectado

Mensajes: 40


Vaya torito ay torito guapo tiene botines y no v..


Ver Perfil
Ayuda con PHP
« en: 7 Febrero 2010, 15:54 pm »

Hola muy buenas, antes que nada agradecer a todo el mundo (que conteste o no) pero que gracias a ell@s me he salvado mas de una vez :-)

A lo que voy....
tengo un script de descargas en php y me gustaría añadirle cuando la descarga se llevará con exito un "El archivo ha sido descargado correctamente (o algo así)" el problema es que lo he intentado con echo y print pero con ninguno e podido hacerlo ya que el script da un error.

Código
  1. <?php
  2.  
  3.  
  4.  
  5. $directorio_descarga = './directorio/files'; // dir descarga
  6. $directorio_contador = './directorio/cont'; // dir contador
  7.  
  8.  
  9.  
  10. $ruta = $directorio_descarga.'/'.$HTTP_GET_VARS['id'];
  11.  
  12.  
  13.  
  14. if(file_exists($ruta))
  15.  
  16. {
  17.  
  18.  
  19. $fichero = fopen($directorio_contador.'/'.$HTTP_GET_VARS['id'].'.txt','r+');
  20. $contador = fread($fichero,100);
  21. fclose($fichero);
  22. $contador++;
  23. $fichero = fopen($directorio_contador.'/'.$HTTP_GET_VARS['id'].'.txt','w');
  24. fwrite($fichero, $contador);
  25. fclose($fichero);
  26.  
  27. $tamano = filesize($ruta);
  28.  
  29. header('Content-Type: application/octet-stream');
  30. header('Content-Disposition: attachment; filename='.$HTTP_GET_VARS['id']);
  31.  
  32. header('Content-Length: '.$tamano);
  33.  
  34.  
  35.  
  36. readfile($ruta);
  37.  
  38. }else{
  39.  
  40. echo "<font face=$textfont size=2>";
  41. echo "<center><br><br>El archivo no está disponible en estos momentos<br>";
  42. echo "<b>Intentelo más tarde<b>";
  43. }
  44.  
  45.  
  46. ?>


Lo único que e conseguido es que cuando la url no sea correcta muestre un mensaje, pero me gustaría que lo mostrase cuando a sido satisfactoria. ¿como puedo hacerlo?


Nuevamente muchas gracias y un saludo!


« Última modificación: 8 Febrero 2010, 10:23 am por UNFORMAT » En línea

Todos somos ignorantes, lo que pasa es que no todos ignoramos las mismas cosas...
dark_sargon


Desconectado Desconectado

Mensajes: 534


CJ


Ver Perfil WWW
Re: Ayuda con PHP
« Respuesta #1 en: 7 Febrero 2010, 19:24 pm »

Hola. Un  error que veo por encima:

Línea 6, falta poner comilla al final:
Código
  1. $directorio_contador = './directorio/cont'; // dir contador


Saludos.


« Última modificación: 7 Febrero 2010, 19:32 pm por dark_sargon » En línea

http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.
UNFORMAT

Desconectado Desconectado

Mensajes: 40


Vaya torito ay torito guapo tiene botines y no v..


Ver Perfil
Re: Ayuda con PHP
« Respuesta #2 en: 8 Febrero 2010, 10:22 am »

Hola dark_sargon, muchas gracias el script original estaba bien pero copie y pegué, cambie los nombres de las rutas  :¬¬ y me comi la comilla jejje

gracias!
¿sabrias como insertar un texto con echo o print si la descarga fue satisfactoria?


Saludos!
En línea

Todos somos ignorantes, lo que pasa es que no todos ignoramos las mismas cosas...
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Ayuda con PHP
« Respuesta #3 en: 8 Febrero 2010, 18:21 pm »

creo qe en php no se puede ya que interactua con el server, y lo que necesitamos en que nos avise el cliente. igualmente no creo que sea posible, habria que interactuar con el navegador, locual no he visto nunca que interactue de esta forma. otra cosa mas que te corrigo, es el filtrado de caracteres en la variable. pensa que si yo pongo ../../../../../../../../etc/passwd me descargaria el fichero depasswords :S, asi que agregate:
Código
  1. function proteger($flota){
  2. if(explode("../",$flota)){
  3. return str_replace("../","",$flota);
  4. }
  5. }
  6. $id=proteger($_GET['id']);

otra cosita, porq no usas $_GET?

suerte ;)!
En línea

jdc


Desconectado Desconectado

Mensajes: 3.406


Ver Perfil WWW
Re: Ayuda con PHP
« Respuesta #4 en: 8 Febrero 2010, 18:50 pm »

Te equivocas castg (por alguna razón me gusta decir eso, espero que no te enojes xD )
 
Fíjate que los archivos estarían en ./directorio/files y agrega un / antes del archivo a descargar, por lo tanto no afecta un rfi, quedaría asi...
 
./directorio/files/../../
 
:s xD
En línea

Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Ayuda con PHP
« Respuesta #5 en: 8 Febrero 2010, 18:54 pm »

vamos no tengas miedo que no te voy a pegar! xD! todos nos equivocamos :P..
En línea

UNFORMAT

Desconectado Desconectado

Mensajes: 40


Vaya torito ay torito guapo tiene botines y no v..


Ver Perfil
Re: Ayuda con PHP
« Respuesta #6 en: 8 Febrero 2010, 21:07 pm »

creo qe en php no se puede ya que interactua con el server, y lo que necesitamos en que nos avise el cliente. igualmente no creo que sea posible, habria que interactuar con el navegador, locual no he visto nunca que interactue de esta forma.
Gracias por tu respuesta! ya me queda todo más claro porque mira que le di vueltas y nada .....  :rolleyes:

Citar
otra cosa mas que te corrigo, es el filtrado de caracteres en la variable. pensa que si yo pongo ../../../../../../../../etc/passwd me descargaria el fichero depasswords :S, asi que agregate:
Código
  1. function proteger($flota){
  2. if(explode("../",$flota)){
  3. return str_replace("../","",$flota);
  4. }
  5. }
  6. $id=proteger($_GET['id']);

al principio lo tenia sin el ./ y vi que se podía armar una buena cierto lo que dice "janito24"
Citar
otra cosita, porq no usas $_GET?
pues si voy a cambiar ya que es un parametro menos global y consumiria menos recursos en el server no?

bueno pues gracias a amb@s!
En línea

Todos somos ignorantes, lo que pasa es que no todos ignoramos las mismas cosas...
Castg!
Wiki

Desconectado Desconectado

Mensajes: 1.191



Ver Perfil WWW
Re: Ayuda con PHP
« Respuesta #7 en: 8 Febrero 2010, 21:28 pm »

yo por mi parte soy bien macho, ahora janito no lo se  :silbar: jejej denada amigo y suerte con tu proyecto ;)
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines