Jump to content


Photo

Cookie Com Array


  • Faça o login para participar
2 replies to this topic

#1 kelme

kelme

    12 Horas

  • Usuários
  • 262 posts
  • Sexo:Não informado

Posted 01/01/2010, 21:29

Boa noite, amigos.

Estou montando um sistema básico, tipo "carrinho de compras".
Ao navegar pelo site, o visitante pode escolher determinados produtos, que são cadastrados previamente.

Quando o visitante escolhe um produto, eu quero que seja enviado para o COOKIE o nome e o valor unitário do produto.
Já vi que precisarei usar ARRAY para isso, e já consegui fazer armazenando o nome do produto, com o comando abaixo:

setcookie ("cookie_produto[$produto_id]", "$produto_nome");

Só que agora preciso passar junto com essa informação também o preço.
Qual é a melhor maneira de se fazer (sem gambiarras)?

Colocar o preço no índice do COOKIE não rola, porque pode existir produtos com preços iguais e isso SUBSTITUIRIA o valor daquele índice no COOKIE.

Obrigado desde já.

#2 Paulo Freitas

Paulo Freitas

    ××××××× LRU #456504 ××××××× ××××××× LRM #364686 ×××××××

  • Ex-Admins
  • 5612 posts
  • Sexo:Masculino
  • Localidade:Campinas - SP

Posted 01/01/2010, 22:04

Hmm, parece que usar serialize() + unserialize() pode resultar em falha de segurança. :ponder:

Você pode fazer assim:

setcookie("cookie_produto[$produto_id]", "nome=$produto_nome&preco=$produto_preco");
Para obter o nome e o preço basta utilizar a função parse_str(), que funciona de uma maneira bem próxima da dupla serialize() + unserialize():

parse_str($_COOKIE['cookie_produto'][$produto_id], $dados);

print $dados['nome'];
print $dados['preco'];
[]’sAté mais

#3 kelme

kelme

    12 Horas

  • Usuários
  • 262 posts
  • Sexo:Não informado

Posted 01/01/2010, 23:34

Valeu, amigo.

Era isso ai mesmo. Esse comando parse_str() era a resposta.
Só que eu precisava exibir 'n' produtos com preço, ou seja, já existia um foreach() retornando uma variável com o valor do nome do produto.

Agora eu mandei gravar nesse COOKIE nome e valor como você sugeriu e depois apliquei a essa variável o parse_str().

Mas aqui pra mim não deu certo a exibição tipo variável['produto'] e variável['preço']. Precisei escrever diretamente $produto e $preço conforme li nuns exemplos do manual do PHP.

Ai ficou exatamento do jeito que eu queria.

Obrigado amigo e a todos do fórum que leram meu post. Estou trabalhando e sem tempo de contribuir com respostas para o fórum, mas espero voltar a contribuir com respostas em breve. Obrigado e Feliz 2010 a todos!




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq