Ir para conteúdo

Arquivado

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

terra

Salvar conteudo de uma session em cookie

Recommended Posts

olá.segue

 

 

 

grava.php

 

session_start();
$id = $_POST['id'];
if( isset( $_POST['acao'] ) && $_POST['acao'] == "add" ){
$_SESSION["minhalista"][$id] = $_POST['id'];
//setcookie('lista',serialize($_SESSION['minhalista'][$id],time()+3600)); //errado
//unset($_COOKIE['lista']);
setcookie('lista',serialize($_SESSION['minhalista']),time()+3600); //certo
}else if( isset( $_POST['acao'] ) && $_POST['acao'] == "del" ){
unset($_SESSION["minhalista"][$id]);
}

 

lista.php

 

 

 

if(isset($_COOKIE['lista'])){
$_SESSION['minhalista'] = unserialize($_COOKIE['lista']);
foreach($_SESSION['minhalista'] as $key => $value){
$id = $_SESSION['minhalista'][$key];
$sel = mysql_query("SELECT * FROM city as c , classificados as cla WHERE id = '".$id."' and c.city_id=cla.city_id");
while($row = mysql_fetch_array($sel)){
//$_COOKIE['lista'];
$rows[] = $row;
}
}
}

 

 

e no tpl

 

 

{foreach from=$rows item=row}

 

 

{/foreach}

 

obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

filipe,

 

veja a alteração que fiz, talvez ajude

 

 

 

 

if(isset($_COOKIE['lista4'])){
$_SESSION['minhalista'] = unserialize(stripslashes($_COOKIE['lista4']));
echo "print de um item do array: ".$_SESSION['minhalista'];
// no X acima ($_SESSION['minhalista'][X]) troque por um id que você adicionou ao array.
}else{
echo "não encontrou o cookie";
}

print de um item do array: 265

 

Tentei fazer aqui tb mas não funcionou

 

 

 

 

if(isset($_COOKIE['lista4'])){
$_SESSION['minhalista'] = unserialize(stripslashes($_COOKIE['lista4']));
foreach($_SESSION['minhalista'] as $key => $value){
$id = $_SESSION['minhalista'][$key];
$sel = mysql_query("SELECT * FROM classificados as cla WHERE business_id = '".$id."' and c.city_id=cla.city_id");
while($row = mysql_fetch_array($sel)){
//$_COOKIE['lista4'];
$rows[] = $row;
}
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

A função "stripslashes" não irá influenciar em nada, retire do seu código até porque não estamos usando a função "addslashes".

Veja o que a função faz: http://php.net/manual/pt_BR/function.stripslashes.php

 

Bom, vamos por fase para ver o que se passa.

Primeiro: selecione 3 itens, me passe o ID de cada item selecionado e o conteúdo do cookie (após selecionar esses 3 itens).

 

Depois iremos analisar o lista.php.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Filipe,

 

segue

 

 

id: 66 - 256 - 257

s%3A258%3A%22s%3A1%3A%222%22%3B++++++++++++++++++++++++++++++++++++++++++++++++++++++++++6+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++22%22%3B

 

terra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Filipe,

 

tirei, mas o tal cache, fechei e abri novamente

 

 

id 66 - 256 - 257

a%3A3%3A%7Bi%3A66%3Bs%3A2%3A%2266%22%3Bi%3A256%3Bs%3A3%3A%22256%22%3Bi%3A257%3Bs%3A3%3A%22257%22%3B%7D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

 

com ajuda do Filipe_Moraes usei json_encode/json_decode e stripcslashes no lugar de serialize e unserialize e tudo funcionou corretamente.
Muito obrigado.
Pode fechar o topico
terra

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.