Foros del Web » Programando para Internet » PHP »

Descargas.php

Estas en el tema de Descargas.php en el foro de PHP en Foros del Web. Hola de antemano agradezco a la persona que me pueda colaborar Soy muy novato en php y tengo un pequeño problema con la seccion de ...
  #1 (permalink)  
Antiguo 26/10/2009, 12:05
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Sonrisa Descargas.php

Hola de antemano agradezco a la persona que me pueda colaborar

Soy muy novato en php y tengo un pequeño problema con la seccion de descargas de mi web.

Lo que quiero es que en mi pagina de descargas haya un listado de los archivos a descargar (link1=archivo1,link=archivo2 etc), en eso obiviamento no hay mayor problema, pero lo que quiero es que al usuario por ejemploal dar clic en el link 2, sea redireccionado a una pagina con un captcha (recaptcha), para que evite el hotlink.

Una vez el usuario ecriba el codigo captcha correctamente se habilita la descarga del archivo que el usuario eligio en la seccion de descargas.

Esto es lo que llevo hasta ahora:

Código:
<?php

require_once('recaptchalib.php');
$publickey = "*****";
$privatekey = "*****";

$resp = null;
$error = null;

if ($_POST["submit"]) {
  $resp = recaptcha_check_answer ($privatekey,
                                  $_SERVER["REMOTE_ADDR"],
                                  $_POST["recaptcha_challenge_field"],
                                  $_POST["recaptcha_response_field"]);

 if ($resp->is_valid) {

      $name = $_GET['file'];

      header("Content-disposition: attachment; filename=$name");

      header("Content-type: application/octet-stream");

      readfile($directorio.'/'.$name);

 } else {

      echo "El codigo fue invalido, por favor intentelo otra vez";
	  
    $error = $resp->error;
  }
}
echo recaptcha_get_html($publickey, $error);
?>
  #2 (permalink)  
Antiguo 26/10/2009, 12:13
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Descargas.php

Sé paciente, no hagas comentarios sin sentido en tus post; ya te contestarán (sólo pasaron 2 minutos entre tus comentarios). Léete las políticas del foro: http://www.forosdelweb.com/f74/polit...el-web-101485/. Respecto al captcha, tendríamos que ver el código de esa librería ('recaptchalib.php') para poder darte una mano. Yo en una ocasión tuve un problema similar y directamente generé la imagen con la librería GD (incluida en PHP). Busca información al respecto que abunda. Verás que es sencillo. ¡Suerte!
  #3 (permalink)  
Antiguo 26/10/2009, 18:38
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Sonrisa Respuesta: Descargas.php

Ok lo que paso fue que quize editar el post pero parece que le di a contestar , creo que no me entendio el captcha ya esta funconando lo que me falta es la pagina descargas.php.


Solo quiero saber como hacer lo que postee, con el captcha no hay problema
  #4 (permalink)  
Antiguo 03/11/2009, 19:11
 
Fecha de Ingreso: octubre-2009
Mensajes: 11
Antigüedad: 14 años, 6 meses
Puntos: 0
Exclamación Respuesta: Descargas.php

Bueno lo pude hacer ¡NO GRACIAS A USTEDES!, este foro la verdad que no sirve para nada sin ofender, los supuestos "administradores" y "ayudantes" de esta web sirven si no para organizar temas por que de resto ........

RECOMIENDO ESTA WEB DONDE HAY EXCELENTES TUTORIALES
*************** este foro no deja publicar links asi que busquen en google "WEb Taller"

Bueno al grano.

1) hay que hacer es la pagina de validacion captcha ( en este caso Recaptcha, recientemente comprado por google)

validacion.php

Código:
<?php

require_once('recaptchalib.php');
$publickey = "su contraseña recaptcha";
$privatekey = "su contraseña recaptcha";

$resp = null;
$error = null;

if ($_POST["submit"]) {
  $resp = recaptcha_check_answer ($privatekey,
                                  $_SERVER["REMOTE_ADDR"],
                                  $_POST["recaptcha_challenge_field"],
                                  $_POST["recaptcha_response_field"]);

 if ($resp->is_valid) {

      define ( 'dir' , 'descargas' );
      $extensiones = array("jpg", "jpeg", "png", "gif", "rar", "zip");     
	  $archivo = $_GET["archivo"];
	    if( file_exists ( dir . '/' . $archivo )){
		  header ( 'Content-Type: application/octet-stream' );
					header ( 'Content-Disposition: attachment; filename=' . $archivo ); 
			  echo file_get_contents ( dir . '/' . $archivo );
		  }     $archivotmp = explode(".",$archivo);
		  $archivoExt = strtolower($archivotmp[count($archivotmp)-1]);
		  if(!in_array($archivoExt,$extensiones)){
			  die("<b>ERROR!</b> no es posible descargar archivos con la extensión $archivoExt");
			  }     

  } else {
        echo "Lo sentimos pero no ha colocado el texto correctamente! Intente nuevamente";
  $error = $resp->error;
  }
}
echo recaptcha_get_html($publickey, $error);
?>
Aclaro que primero hay que descagar nuestra contraseña recaptcha en la pagina *************** este foro no deja publicar links asi que busquen en google "REcaptcha"

2) Creamos un directorio donde subir los archivos a descargar (en este script se llama descargas pero ustedes pueden cambiarlo por el nombre de su carpeta de archivos).

3) Ahora en nuestra pagina de descargas (donde estan los links a descargar), solo ahy que configurar los enlaces para llamar el archivo que queremos descargar (SuPaginaDeDescagar.php?archivo=NombreDelArchivoAD escargar).

Asi esta funcionando en mi web *************** este foro no deja publicar links asi que busquen en google "Apocalipsis Demencial"
  #5 (permalink)  
Antiguo 03/11/2009, 21:28
Avatar de dggluz  
Fecha de Ingreso: abril-2009
Ubicación: Buenos Aires, Argentina
Mensajes: 525
Antigüedad: 15 años
Puntos: 50
Respuesta: Descargas.php

Disculpas mi amigo, pero creo que estás siendo demasiado duro con un foro en el que colaboramos los que podemos y de manera completamente desinteresada.
La verdad es que el problema que planteaste se hubiese resuelto fácilmente si tú mismo generabas el código con GD, ayuda que intenté al comienzo. Evidentemente, si quieres la salida fácil con una librería, puedes hacerlo, y valoro que postees el modo en que lo hiciste. Sin embargo, nadie usó ni conoce todas las librerías que hay para PHP, y no íbamos a estudiárnosla de cabo a rabo para contestarte una duda que seguramente era de implementación y debería estar suficientemente documentada. Sobre todo, no dan demasiadas ganas de invertir esfuerzo en contestarle a alguien que ni siquiera termina de dejar clara su duda (fíjate que yo te entendí otra cosa en la primer ocasión).
Nuevamente, disculpa mi dureza y antipatía, pero creo que cosas como:
Cita:
Iniciado por metallized Ver Mensaje
Bueno lo pude hacer ¡NO GRACIAS A USTEDES!, este foro la verdad que no sirve para nada sin ofender, los supuestos "administradores" y "ayudantes" de esta web sirven si no para organizar temas por que de resto ........
en verdad son ofensivas, y dejan ridículo al "sin ofender". Te recomiendo que te amigues con el foro, no es perfecto pero es bueno, y con una actitud altruista puede mejorar. ¡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 21:27.