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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Duda como generar un link aleatorio...!!
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Duda como generar un link aleatorio...!!  (Leído 4,843 veces)
TrashAmbishion


Desconectado Desconectado

Mensajes: 756


Ver Perfil
Duda como generar un link aleatorio...!!
« en: 30 Junio 2013, 21:56 pm »

Hola amigos hace un tiempo publique una duda sobre como puedo hacer para que mis usuarios tengan que acceder unicamente desde un mi link que dice Correo, algunos me dijeron que chequeara el lugar del que venian no se si era con "location", cree un hilo nuevo porque quisiera saber si es posible crear un link aleatorio que se genere cada ves que un usuario quiera entrar....

Salu2


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Duda como generar un link aleatorio...!!
« Respuesta #1 en: 1 Julio 2013, 01:46 am »

para generar un link aleatorio haces lo siguiente

creas una tabla para ese fin con usuario y valor a meter

usas rand() para generar un numero al azar
http://php.net/manual/es/function.rand.php

guardas ese valor en la tabla y se lo pasas al usuario, si el devuelve un link correspondiente de usuario y link aleatorio correcto listo...


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.855



Ver Perfil WWW
Re: Duda como generar un link aleatorio...!!
« Respuesta #2 en: 1 Julio 2013, 03:22 am »

Esas cosas se suelen hacer con sessiones. Son muy parecidas a los captchas. Te dejo un ejemplo:

generar.php
Código
  1. <?php
  2.  
  3.  
  4. $nombre_archivo = 'archivo.txt';
  5. $link = 'http://mipagina.com/descargar.php';
  6.  
  7. // Generar un hash en sha1 totalmente aleatorio.
  8. $sesc = sha1(rand(0,999).rand(8,888).$nombre_archivo.rand(1,9999));
  9.  
  10. // Poner el hash en session para futura comprobación.
  11. $_SESSION['link'][$nombre_archivo] = $sesc;
  12.  
  13. echo '<h1>Tu archivo esta listo</h1>';
  14. echo $link.'?archivo='.$nombre_archivo.'&sesc='.$sesc;
  15.  
  16. ?>

Esto generaría un enlace del siguiente tipo:
http://mipagina.com/descargar.php?archivo=archivo.txt&sesc=7c44781daa257c8931fed1f0eb79f4c8a0bc98a0

descargar.php
Código
  1. <?php
  2.  
  3.  
  4. // Si sesc o archivo estan vacios, morrimos.
  5. if(empty($_GET['sesc']) || empty($_GET['archivo'])){ die('Consulta no valida. SESC o ARCHIVO faltan.'); }
  6.  
  7. // Si la session del usuario no coincide con la que nos envia... morrimos.
  8. elseif($_GET['sesc']!==@$_SESSION['link'][$_GET['archivo']]){ die('Tu session no es valida.'); }
  9.  
  10. // Destruir la session para que no pueda volver a utilizar el mismo enlace.
  11. unset($_SESSION['link'][$_GET['archivo']]);
  12.  
  13. // Descarga de archivo.
  14. header('Content-Type: application/octet-stream');
  15. header("Content-disposition: attachment; filename=\"".$_GET['archivo']."\"");
  16. die(readfile($_GET['archivo']));
  17.  
  18. ?>

PD: Obviamente este código es mega-super-hiper inseguro. Pero tu ya tendrás la manera de generar los archivos y tal así que te lo muestro como ejemplo.

PD2: Como ta ha mencionado @engelx, si vas a utilizar usuarios y quieres que los enlaces sean permanentes para ellos tendrás que almacenar el valor en la base de datos.

Saludos
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
¿como creo una variable con un valor aleatorio en bat?
Scripting
PrEmUt0s 4 6,597 Último mensaje 15 Octubre 2008, 23:28 pm
por SmartGenius
generar una boleta [duda]
PHP
Dosjota 3 3,309 Último mensaje 25 Mayo 2010, 05:27 am
por Dosjota
Leer texto base y generar otro aleatorio {JAVA}
Java
drachmatizando 0 3,238 Último mensaje 16 Septiembre 2010, 19:24 pm
por drachmatizando
[Duda] Como borrar registros de un archivo aleatorio?
Programación Visual Basic
Dreamaker 3 6,199 Último mensaje 24 Octubre 2010, 09:25 am
por Dreamaker
Ayuda! ¿Como le hago para agregar datos a un archivo de acceso aleatorio?
Java
Isatol 0 1,882 Último mensaje 21 Abril 2013, 02:42 am
por Isatol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines