Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Patrique

[Resolvido] conteúdos vistos por cookie

Recommended Posts

Galera um usuário surgiu com uma dúvida neste tópico http://forum.imasters.com.br/index.php?showtopic=353422 dae eu fiz um sistema, para gravar os ids dos 6 últimos anuncios vistos em um site, para ver o sistema funcionando teste aqui

 

http://www.metodistavilanova.com.br/livros/index.asp

 

A primeira coisa é criar um javascript que fique encarregado e tenha as funções para criar os cookie send que o mesmo tera que ter funções de ler, criar, editar e carregar os cookies.

 

Para isso criei um js que ficara com estas funções.

 

crie um arquivo chamado lendo_livros.js

 

lendo_livros.js

function salvando_livro() {
	var lendo_livro = livro_id;
	var lista_livro = carrega_recentes();
	var livro_salvo = 0;

	if( lista_livro != null ) {
		var array_livro = lista_livro.split( "|" );

		for( i = 0; i < array_livro.length; i++ ) {

			if ( array_livro[ i ] != livro_id && livro_salvo < 6 ) {
				lendo_livro = lendo_livro + "|" + array_livro[ i ];
				livro_salvo ++;
			}
		}
	}

	cria_cookie( "lidos", lendo_livro, 28 );
}

function carrega_recentes() {

	lista_livro = ler_cookie( "lidos" );

	return lista_livro;

}

function cria_cookie(nome, valor, dias) {

	if(dias) {
		var data = new Date();
		data.setTime(data.getTime() + (dias * 24 * 60 * 60 * 1000));
		var expira = "; expires=" + data.toGMTString();
	} else {
		var expira = "";
	}

	document.cookie = nome + "=" + valor + expira + "; path=/";
}

function ler_cookie(nome) {

	var nomeEQ = nome + "=";
	var ca = document.cookie.split(';');

	for(var i = 0; i < ca.length; i++) {
		var c = ca[i];
		while (c.charAt(0) == ' ') c = c.substring(1, c.length);
		if (c.indexOf(nomeEQ) == 0 ) return c.substring(nomeEQ.length, c.length);
	}

	return "";

}

Na linha 11 eu especifiquei 6, ele será o número de ids criados neste cookie, o número de ids não ultrapassara este valor, querendo aumentar modifique esta linha.

 

Agora crie um arquivo chamado conexao.asp nele ficara uma rotina aonde tera a function que conectara ao BD.

 

conexao.asp

<%
Dim Conn

Public Function ConnDB(bd)
	Set Conn = Server.CreateObject("ADODB.Connection")
		Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(bd) & ";"
End Function
%>

Fim uma página simples para teste, de o nome dela de index.asp nela o sistema vai listar a relação de livros pegando através de um select o nome do livro e o id deste registro.

 

crie um arquivo chamado index.asp

 

index.asp

<!-- #include file="conexao.asp" -->
<%
If Request.QueryString("acao") = "limpar" then
   Response.Cookies("lidos").Expires = now
   Response.Redirect("./index.asp?acao=limpado")
End If

ConnDB("livros.mdb")

Set RS = Conn.Execute("SELECT id,nome FROM livros_tbl")

Response.Write("<table width=""100%"" border=""0"" cellpadding=""0"" cellspacing=""0"">")
Response.write("<tr>")
Response.Write("<td>")

Response.Write("<strong>LIVROS DISPONÍVEIS PARA A LEITURA</strong>")
Response.Write("<br /><br />")

for each item in RS.fields
next
DO UNTIL RS.eof

Response.Write("<a href=""lendo.asp?id=" & RS("id")& """>" & RS("nome") & "</a><br />")

RS.movenext
LOOP

Response.Write("</td>")
Response.Write("<td vAlign=""top"">")
%>
<!-- #include file="livros_lidos.asp" -->
<%
Response.Write("</td>")
Response.Write("</tr>")
Response.Write("</table>")
%>

Agora crie um arquivo chamado lendo.asp nesta página você tera que colocar um js, ele será responsável por criar o id deste livro que esta sendo lido no cookie...

 

lendo.asp

<%
If Request.QueryString("id") = "" then
	Response.Redirect("./index.asp?acao=erro")
End If
%>

<script src="lendo_livro.js" type="text/javascript"></script>
<script language="javascript" type="text/javascript">
	var livro_id = <%=Request.QueryString("id")%>;
	salvando_livro();
</script>

<%
Response.Write("blá blá blá do livro")
Response.Write("<br /><br />")
Response.Write("<a href=""./index.asp"">voltar</a>")
%>

Repare o javascript, através do index eu sou direcionado para esta página, é nela aonde ficara a informações do id, note que eu fui parar nela atraves de um querystring, este querystring contem o id do anuncio e é posto no javascript para criar o id do último registro lido.

 

Por fim criamos uma page que sera responsável por ler o cookie, separar os ids e mostrar ao usuário, para isso crie uma página chamada livros_lidos.asp

 

Fim uma function que faz a contagem e monta o select, uso o splite para separar os valores dos ids... uso if para contagem e montagem dos selects e por fim monto o sql e do um response.write

 

livros_lidos.asp

<strong>ÚLTIMOS 6 LIVROS LIDOS POR VOCÊ NO SITE</strong>
<br /><br />
<%
lidos = Request.Cookies("lidos")
contagem = split(lidos,"|")
numero = uBound(contagem)

ConnDB("livros.mdb")

Dim total

Function Montagem(num)
  For total = 1 to num

	somaid = total - 1
	somalido = total
	lidonum = lido & somalido
	id1 = contagem(somaid)

	Set lidonum = Conn.Execute("SELECT * FROM livros_tbl WHERE id = "& id1 &"")

	Response.Write "<li><a href=""/livro.asp?id="& lidonum("id") &""">"& lidonum("nome") &"</a></li>"

  Next

	Response.Write("<br /><br />")
	Response.Write("<a href=""./index.asp?acao=limpar"">apagar anúncios salvos</a>")

End Function

if numero = "1" then
	Montagem(1)
	elseif numero = "2" then
		Montagem(2)
	elseif numero = "3" then
		Montagem(3)
	elseif numero = "4" then
		Montagem(4)
	elseif numero = "5" then
		Montagem(5)
	elseif numero = "6" then
		Montagem(6)
else
	response.write "nenhum livro lido..."
end if

%>

Por fim crie um mdb chamado livros.mdb crie uma tabela chamada livros_tbl dentro desta tabela crie 2 tabelas, uma chamada de id e a outra chamada nome

 

Coloque tudo na mesma pasta e teste o code

 

Coloquei uma versão online para você ver como ficou

 

http://www.metodistavilanova.com.br/livros/

 

Também coloquei uma função para o usuário poder excluir os registros.

 

Bom ta ae, era isso que eu estava falando.

 

Depois eu te passo o número da minha conta corrente hein kkkkkkkkkkkkkkkkk

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.