Destruir Sessão

Enviada por Xavier 
Xavier
Destruir Sessão
16 de May de 2018 às 04:56PM
Olá pessoal!

Estou com um probleminha aqui.

Minha sessão não quer ser destruída de jeito nenhum.
Explico: Eu desenvolvendo uma loja virtual e ao iniciar a compra dos produtos, então crio a sessão carrinho.
Depois de finalizar e gerar a fatura.php, incluo uma include para destruir a sessão. Porém não destroi.
Eu gravo a sessão na tabela "numped_loja" e quando eu finalizo e inicio outra compra, o numero da session_id, continua o mesmo. Não teria de alterar?
Aguardo.
Jayme A. C. Gimenez
Re: Destruir Sessão
16 de May de 2018 às 06:21PM
Que códigos está usando para destruir a session?
Xavier
Re: Destruir Sessão
16 de May de 2018 às 10:40PM
Olá Jayme !

Estou usando este código:

<?php

session_start();

if(isset($_SESSION['carrinho'])):

unset($_SESSION['carrinho']);

session_destroy();

header("Location: index.php");

exit();

endif;

?>
Trambulhao
Re: Destruir Sessão
17 de May de 2018 às 04:02PM
http://php.net/manual/pt_BR/function.session-destroy.php
Xavier
Re: Destruir Sessão
18 de May de 2018 às 12:31PM
Beleza Trambulhao!
Obrigado pela atenção.

Veja bem, eu inicio uma sessão carrinho e então seleciono os produtos e depois eu quero finalizar meu carrinho e matar a sessão carrinho. Correto ? Esse é o procedimento padrão no php.
Mas veja bem, eu fiz isso tudo e depois eu quero iniciar uma nova compra. E oque acontece na hora que eu inicio um novo carrinho e gravo o número da session_id na minha base? Ele permanece o mesmo. Não tinha de alterar uma vez que eu encerrei a sessao carrinho? É isso que está me deixando encucaco. Eu estou usando a sessio_id() como filtro dos meus pedidos. Minha tabela é auto increment "idp".
Jayme A. C. Gimenez
Re: Destruir Sessão
18 de May de 2018 às 05:08PM
Mas você sabe dizer que critérios o PHP usa para determinar um valor pra session_id()? Por exemplo, se for determinado aleatoriamente, seu plano vai falhar mesmo que tudo funcione perfeitamente, pois, como é aleatório, o PHP pode acabar, em algum momento, estabelecendo o mesmo valor para duas session_id() (certamente não para duas sessions ativas; mas no seu bd estarão os ids de todas as sessions, não é isso, mesmo aquelas que já estão inativas?).
Xavier
Re: Destruir Sessão
18 de May de 2018 às 09:41PM
Entendi.
Então me oriente: Qual é a forma mais usual para se criar o nº do pedido? Seria o campo Id da tabela com campo auto incremento ? Até aqui tudo bem. Isso e tranquilo.
Porém, eu somente gravo na base de dados o numped (número do pedido) e logo após o pedido, após finalizar o pedido, fechando a sessão e redirecionando o usuário.
Então pelo que vejo, não eu posso depender de session e cookies para filtrar o id do meu pedido.
Jayme A. C. Gimenez
Re: Destruir Sessão
21 de May de 2018 às 05:40PM
1) Você está fazendo tudo nesse projeto, é isso? Modelando o banco de dados, construindo os scripts PHP, o HTML/CSS, etc?

2) Pelo que estou entendendo, você está, nesse tópico aqui do fórum, tentando entender como você pode resgatar os dados de um pedido já feito, seria isso? E, para poder fazer isso, como você faria para definir um número de pedido que pudesse servir de referência para resgatar os dados desse pedido, certo?

3) Se o item 2 está prevendo corretamente o que você está querendo fazer, cada pedido terá que estar vinculado a um login de usuário, é isso? Ou seja, um usuário poderá ter vários números de pedidos na base de dados, mas cada número de pedido estará vinculado a apenas um usuário. Seria isso?
Xavier
Re: Destruir Sessão
31 de May de 2018 às 09:02PM
Tranquilo, Jayme.
Já resolvi. Mesmo estando numa mesma session, caso o cliente queira outro pedido, eu crio um novo pedido dessa forma sem stress...

$pedido=hash('crc32',hash('sha512',microtime())); Assim eu crio um número único e gravo na tabela.

Assim consegui resolver. Tá de bom tamanho.

Obrigado pela atenção.
João Assef
Re: Destruir Sessão
20 de July de 2018 às 11:10PM
Resolvido
Você precisa estar logado no PHPBrasil.com para poder enviar mensagens para os nossos fóruns.

Faça o login aqui.