WHR 0 Denunciar post Postado Julho 11, 2009 Boa tarde pessoal! Desenvolvi um carrinho de compras onde ele grava a session_id() do usúario até o fechamento do pedido. Gostaria de saber como eu faço para que depois de ter concluido o pedido ele altere este session_id() por um novo sendo assim limpando o carrinho de compras? Utilizei: a função session_regenerate_id() porem esta acusando este erro Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent Desde já agradeço a ajuda. Compartilhar este post Link para o post Compartilhar em outros sites
walmir.silva 0 Denunciar post Postado Julho 11, 2009 Você pode pegar a variavel do session_id() já existente e atribuir um novo valor para ela: $_SESSION['SESSION_EXISTENTE'] = $Novo_Valor; Ou se for apenas para limpar essa session_id(), use a funçao unset() unset($_SESSION['SESSION_EXISTENTE']); e se for para destruir toda a sessão utilize: session_destroy(); Espero que ajude Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Julho 11, 2009 Você pode pegar a variavel do session_id() já existente e atribuir um novo valor para ela: $_SESSION['SESSION_EXISTENTE'] = $Novo_Valor; Ou se for apenas para limpar essa session_id(), use a funçao unset() unset($_SESSION['SESSION_EXISTENTE']); e se for para destruir toda a sessão utilize: session_destroy(); Espero que ajude Boa tarde amigo, obrigado por responder. No caso não posso utilizar: unset(session_id()); limpar este valor e criar outro automaticamente? Compartilhar este post Link para o post Compartilhar em outros sites
Rafael Wapbrasil 1 Denunciar post Postado Julho 11, 2009 você tem que usar o unset na variavel, nao no valor Compartilhar este post Link para o post Compartilhar em outros sites
Fernando Rodrigo Cardoso 2 Denunciar post Postado Julho 11, 2009 Use session_unset(), http://br.php.net/manual/pt_BR/function.session-unset.php @walmir.silva, este método apenas apagará valores na superglogal $_SESSION, o valor na session ainda existirá, dependendo da versão do seu php : Nota: Se $_SESSION (ou $HTTP_SESSION_VARS para PHP 4.0.6 ou inferior) é usada, utilize unset() para desregistrar a variável da sessão. i.e. unset($_SESSION['varname']);.Note que : Cuidado NÃO elimina completamente $_SESSION com unset($_SESSION) enquanto esta desabilitará o registro de variáveis de sessão pela $_SESSION superglobal. Ops... Desconsiderem o que eu disse acima, use unset($_SESSION['VARNAME']) (edit) @WHR No caso não posso utilizar: unset(session_id()); limpar este valor e criar outro automaticamente? Não, unset() destrói uma 'varíavel', isto aí resultaria em um Fatal Error.use unset($_SESSION['VARNAME']); Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Julho 13, 2009 Bom dia pessoal! defini um valor para a variavel sessao_id() $_SESSION['session_carrinho'] = session_id(); Após o cliente ter efetuado a compra fiz ele limpar o varlor da variavel unset($_SESSION['session_carrinho']); Porem quando ele volta no site o carrinho ainda esta cheio pois ele não esta gravando uma nova session_id() como faço para que ao limpar a $_SESSION['session_carrinho']) ele grave uma nova sessão com identificação diferente? Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 13, 2009 Para limpar a sessão, faça isso: $_SESSION = array(); Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Julho 13, 2009 Para limpar a sessão, faça isso: $_SESSION = array(); Bom dia André! No caso gostaria que ele limpace apenas esta sessão $_SESSION['session_carrinho'] e criar um novo id de referencia para este sessão Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 13, 2009 unset ($_SESSION['session_carrinho']); Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Julho 13, 2009 unset ($_SESSION['session_carrinho']); Carlos Eduardo Bom dia amigo, utilizei esta função mas quando retorno para o site o carrinho continua utilizando a mesmo sessão de referencia. Como faço ao limpar ele gere uma nova referencia do id da sessão? Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 13, 2009 session_regenerate_id Eu sei que você já testou antes, mas agora mudou de situação... Testa assim mesmo e veja se funciona. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Julho 13, 2009 session_regenerate_id Eu sei que você já testou antes, mas agora mudou de situação... Testa assim mesmo e veja se funciona. Carlos Eduardo Boa tarde amigo, continua do mesmo modo. se coloco session_regenerate_id da erro Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 13, 2009 O erro é o mesmo que antes? Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent Este comando tem que ser feito no antes do envio de qualquer header ao navegador. A lógica está correta, mas tem que conferir isto. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
André D. Molin 15 Denunciar post Postado Julho 13, 2009 Se $_SESSION['session_carrinho'] for um array, é só fazer isso. $_SESSION['session_carrinho'] = array(); Agora se ele for o indice de um array, tem que ver no manual do PHP. Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 13, 2009 André, o problema é que ele precisa que seja gerado um novo session_id()... Daí fazer isto é o mesmo que fazer unset($_SESSION['session_carrinho'])... Que ele está fazendo... Agora uma pergunta... porque precisa ter um novo session_id()? Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
WHR 0 Denunciar post Postado Julho 13, 2009 André, o problema é que ele precisa que seja gerado um novo session_id()... Daí fazer isto é o mesmo que fazer unset($_SESSION['session_carrinho'])... Que ele está fazendo... Agora uma pergunta... porque precisa ter um novo session_id()? Carlos Eduardo Boa tarde Carlos, preciso pois ao carregar o carrinho gravo a sessão do usuario e ele finalizando o processo de compra como esta sendo o mesmo id da sessão ele acusa como o carrinho ainda esta cheio Compartilhar este post Link para o post Compartilhar em outros sites
Renato Siroma 2 Denunciar post Postado Julho 13, 2009 Boa tarde Carlos, preciso pois ao carregar o carrinho gravo a sessão do usuario e ele finalizando o processo de compra como esta sendo o mesmo id da sessão ele acusa como o carrinho ainda esta cheio Tenta fazer o que o André falou, que funciona amigo. $_SESSION['session_carrinho'] = array(); Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 13, 2009 Bom... então veja o meu post anterior... Não vejo outra opção. Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
Matias Rezende 50 Denunciar post Postado Julho 13, 2009 Olha, o Renato Siroma postou em outro tópico algo que pode ser útil para você. http://forum.imasters.com.br/index.php...t&p=1335275 Carlos Eduardo Compartilhar este post Link para o post Compartilhar em outros sites
tobiasinfo 0 Denunciar post Postado Março 3, 2011 Matias! bendito sejas tu!! hahaha isso aqui: session_regenerate_id salvou! estava encalhado nesse carrinho há 3 dias! obrigado Compartilhar este post Link para o post Compartilhar em outros sites