Script de criar URL temporaria

Enviada por Rodrigo 
Rodrigo
Script de criar URL temporaria
24 de March de 2014 às 02:49PM
Boa tarde pessoal mais uma vez aqui pedindo ajuda de vocês o caso e o seguinte montei um protetor de links certo ate ai tudo bem funcionando legal etc...
So que tipo eu gostaria de fazer a URL ser alterada de forma que aquela URL só fique valida somente por um tempo assim se o usuário for acessar o mesmo item a URL para download mude no caso ele tente usar a URL que ele fez o Download fique desvalida segue a baixo a URL que fiz ate o momento.

PS: A URL abaixo e um exemplo tirando no caso www.meu site.com.br e os valores que estão do lado dos sinais de = em nome, numero e id o resto e a URL em si.

URL: http://www.meusite.com.br/protetor_links.php?page=dir&tipo=protect-episodios&action=download&nome=nome-da-serie&numero=15&id=4&url=url

Ai quando ele clica nesse link executa esse script no Protetor que faz uma contagem de 10 segundos para aparecer o link de Download certo.

<?php
if ($tipo == "protect-episodios" AND $action == "download"){
include("config.php");
$select = mysql_query("SELECT * FROM `episodios_medias` WHERE `id`='".$_GET["id"]."'");
$episodios = mysql_fetch_array($select);
$select2 = mysql_query("SELECT * FROM `episodios_subcategoria` WHERE `id`='".$episodios['subcat']."'");
$listaDados = mysql_fetch_array($select2);
$select3 = mysql_query("SELECT * FROM `episodios_categoria` WHERE `id`='".$episodios['cat']."'");
$categoriaDados = mysql_fetch_array($select3);
$modoSecao = $categoriaDados["modo"];
list($ano, $mes, $dia) = explode("-", $episodios["arquivo_data_cad"]);
$episodios["arquivo_data_cad"] = $dia . '/' . $mes . '/' . $ano;
?>


<script language="Javascript">
var start = 10;
function diminui () {
document.getElementById("download").innerHTML = "Gerando Link " + start;
if (start > 0) {
window.setTimeout ("diminui()", 1000);
}else {
document.getElementById("download").innerHTML = '<a href="protetor_links.php?page=dir&tipo=episodios&action=download&id=<?php echo $_GET["id"]; ?>&url=<?php echo $_GET["url"];?>&nome=<?php echo $_GET["nome"];?>/">Download</a>';
}
start--;
}
diminui();
</script>

<? } ?>

Ao clicar no link de Download executa essa parte abaixo ao qual pega o valor da url= e aplica no GET["url"] ai efetua o Download certo.

<?php
/*
----------------------------------------------------------------
SCRIPT DE AÇÃO DE DOWNLOAD EPÍSODIOS INICIO
----------------------------------------------------------------
*/
if ($tipo == "episodios" AND $action == "download"){
include("config.php");
mysql_query("UPDATE `episodios_medias` SET `downloads`=downloads+1 WHERE `id`='".$_GET["id"]."'");
$select = mysql_query("SELECT * FROM `episodios_medias` WHERE `id`='".$_GET["id"]."'");
$episodios = mysql_fetch_array($select);
header("Location: ".$episodios["".$_GET["url"].""]."");
}
/*
----------------------------------------------------------------
SCRIPT DE AÇÃO DE DOWNLOAD EPÍSODIOS FIM
----------------------------------------------------------------
*/
?>

Agora eis o que procuro ter com a ajuda de vocês e o seguinte, e fazer um campo adicional nessa URL abaixo certo de forma que fique um valor temporário ao qual após perder a validade o usuário não tenha como usar a mesma URL.

<a href="protetor_links.php?page=dir&tipo=episodios&action=download&id=<?php echo $_GET["id"]; ?>&url=<?php echo $_GET["url"];?>&$nome=<?php echo $_GET["nome"];?>/">Download</a>

Eu vi uma função na internet que valida url

<?php
$url = 'http://www.google.com.br';
if(filter_var($url, FILTER_VALIDATE_URL) === FALSE) {
echo 'URL é inválida';
} else {
echo 'A URL é válida';
}
?>

Gostaria da ajuda de vocês para fazer no caso um upgrade nesse meu script somente para que faça a URL ficar com mais um campo extra com um valor temporário certo ai caso o valor seja valido execute o script de download caso contrario se a URL tiver perdido a validade o link não funcione. Espero que tenha sido claro rsrsrs.

Desde já agradeço a ajuda de todos.
Jayme A. C. Gimenez
Re: Script de criar URL temporaria
24 de March de 2014 às 03:24PM
É muito código para olhar num simples forum... Mas vamos tentar ajudar com o conceito da coisa...

Penso que você teria que ter uma parte numérica na URL, que serviria para fazer a restrição que você quer.

Assim, se eu sou o primeiro usuário a fazer o download, essa parte numérica da URL seria 1. E esse valor seria, então, armazenado (de preferência no banco de dados, que já faz o controle de tráfego - porque o sistema pode ter vários usuários fazendo download ao mesmo tempo).

Para construir a próxima URL, para o segundo download, o sistema vai ao banco, pega o valor anterior (no caso o 1 ), soma 1 a ele e manda a URL com a parte numérica 2.

Antes de fazer o download, uma das tarefas do protetor de links será verificar se a parte numérica da URL é maior que o valor armazenado no banco. Se for maior, beleza, libera o download. Se for igual ou menor, é sinal que essa URL já foi usada para download e, então, ela é recusada.

Claro que só isso não impede alguém mais espertinho de colocar um número grande no lugar certo da URL e fazer o download driblando tudo. Mas, para evitar isso, certamente também podemos encontrar defesa.
Rodrigo
Re: Script de criar URL temporaria
24 de March de 2014 às 03:43PM
No caso como seria o script sou ainda iniciante né rsrsrs. Você teria algum site o script disponível ai para eu poder ver como e ?
Wastro S. Leite
Re: Script de criar URL temporaria
21 de February de 2018 às 08:02AM
Bom dia Rodrigo! estou procurando um script de criar URL temporária queria saber se você conseguiu resolver o seu problema e se pode me ajuda.
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.