Ocultar enlace con php y descargar

Iniciado por erikcatala, 5 Febrero 2014, 03:54 AM

0 Miembros y 1 Visitante están viendo este tema.

erikcatala

Quiero ocultar la ruta de los enlaces para que no se vean y luego poder descargarlos usando esa ruta.

Para ocultar los enlace hago esto:

descarga.php
<?php
$id
=$_GET["id"];
$enlace "http://www.miweb.com/" $id;
header("Content-Disposition: attachment; filename=".$id."\n\n");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($enlace));
readfile($enlace);
?>


El problema esta en descargarlo, no quiero que se descargue automáticamente, quiero que salga algo tipo de botón en la web (que tenga que hacer click)  para descargarlo pero siempre ocultando el link.

Alguien me podría guiar o decirme como podría hacerlo? :)

bacanzito

Cita de: erikcatala en  5 Febrero 2014, 03:54 AM
Quiero ocultar la ruta de los enlaces para que no se vean y luego poder descargarlos usando esa ruta.

Para ocultar los enlace hago esto:

descarga.php
<?php
$id
=$_GET["id"];
$enlace "http://www.miweb.com/" $id;
header("Content-Disposition: attachment; filename=".$id."\n\n");
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($enlace));
readfile($enlace);
?>


El problema esta en descargarlo, no quiero que se descargue automáticamente, quiero que salga algo tipo de botón en la web (que tenga que hacer click)  para descargarlo pero siempre ocultando el link.

Alguien me podría guiar o decirme como podría hacerlo? :)

Hola amigo  soy novato en esto de php ,ami tambien me interesa mucho demasiado saber esa informacion   ;-) ,la cuestion es que lo que tu piensas de proteger enlaces se hace con esta encriptacion AES.

http://www.movable-type.co.uk/scripts/aes-php.html

aqui un  ejemplo funcional quisas te ayude a estudiar el funcionamiento yo quite el archivo que comiensa con ht para que me funciona en xampp.

http://www.dailymotion.com/video/xxvcmy_script_webcam

https://mega.co.nz/#!YV92lLJT!KarliWQ_E2_uHnru7VVeHhmIdeVb38cz3fbD1ZEriA8

pero tiene bugs  :-\ si supiese lo arreglaba o algo mejor crearia bbcodes de proteccion de enlaces de descargas para todas las plataformas open source como wordpress , smf ,phBB que son mi favoritos.  :xD

espero te guste mi respuesta  ;D





sexto

¿Sería algo parecido a hacer un html con un botón y que ese botón te enlace a descarga.php?id=x?

erikcatala

#3
Gracias @bacanzito por la info, le voy a echar un vistazo :)

@sexto si seria eso, pero el problema es que necesito otro link que vaya a ese botón de descarga y no quería usar un php para redirigir a los botones de descarga y otro para bajarlo.

Y el boton de descarga solo valdria si vinieras del primer link y solo funcionase una vez, al cabo de un rato fuera el mismo archivo pero con otro link, pero el primero seria igual.

El unico link que cambiaria seria el del boton.

bacanzito

Cita de: erikcatala en  5 Febrero 2014, 12:40 PM
Gracias @bacanzito por la info, le voy a echar un vistazo :)

@sexto si seria eso, pero el problema es que necesito otro link que vaya a ese botón de descarga y no quería usar un php para redirigir a los botones de descarga y otro para bajarlo.

Y el boton de descarga solo valdria si vinieras del primer link y solo funcionase una vez, al cabo de un rato fuera el mismo archivo pero con otro link, pero el primero seria igual.

El unico link que cambiaria seria el del boton.

yo pienso que debes aplicar la criptografia AES del lado del servidor php  como este otro demo:

http://www.gratisprogramas.org/sistema-para-integrar-adf-ly-con-proteccion-de-enlaces/

bacanzito

un ejemplo mas  :)

Citarjdownloader.php



 
Código (php) [Seleccionar]
<?php
function base16Encode($arg){
$ret="";
for($i=0;$i<strlen($arg);$i++){
$tmp=ord(substr($arg,$i,1));
$ret.=dechex($tmp);
}
return $ret;
}

$key="1234567890987654";
$transmitKey=base16Encode($key);
$link="http://www.mediafire.com/?xxxx1/jDownloader.dmgrnhttp://www.mediafire.com/?xxxx2/jDownloader2.dmg";
$cp mcrypt_module_open(MCRYPT_RIJNDAEL_128'''cbc''');
@
mcrypt_generic_init($cp$key,$key);
$enc mcrypt_generic($cp$link);   
mcrypt_generic_deinit($cp);
mcrypt_module_close($cp);
$crypted=base64_encode($enc);

?>


<FORM ACTION="http://127.0.0.1:9666/flash/addcrypted2" target="hidden" METHOD="POST">
  <INPUT TYPE="hidden" NAME="passwords" VALUE="myPassword">
  <INPUT TYPE="hidden" NAME="source" VALUE="http://jdownloader.org/spielwiese">  
  <INPUT TYPE="hidden" NAME="jk" VALUE="function f(){ return '31323334353637383930393837363534';}">
  <INPUT TYPE="hidden" NAME="crypted" VALUE="<?php echo $crypted?>">
  <INPUT TYPE="SUBMIT" NAME="submit" VALUE="Add Link to JDownloader">
</FORM>



erikcatala

Como ya he dicho el link del botón solo debe funcionar 1 vez, y con estos métodos no me sirve.

El primer link para ir al botón que esta la dirección oculta ese me da igual la protección, con el descargar.php?id=1 me sirve.

Lo que mas me interesa es que el botón de descarga el link solo sea valida 1 vez, y para crear otro link valido tengan que pasar por el primer link.


MeTaD

Hermano, no estoy seguro si funcione... pero podrias usar sesiones de PHP para lo que quieres, por ejemplo, que cuando se entre a la pagina se cree un link temporal y se almacene en la sesion, y, luego e hacer click en el boton de descarga utiliza session_derstroy(); No estoy seguro si funcionaría, pero bueno, ahi te dejo mi idea