montano 0 Denunciar post Postado Setembro 21, 2009 boa noite, Pessoal, tem problema por session_start() mais de uma vez na pagina? eu tenho uma index.php que faz include de um cabeçalho e de um corpo. existe um session_start() em cada include, porque eu nao estava conseguindo usar no cabeçalho $_SESSION, mesmo ja tendo na index.php. Até ai tudo bem, porem eu tenho um script assim: if ($_GET['acao'] == 'logout') { session_destroy(); } <a href='?acao=logout'>sair</a> Quando eu executo isso, ele apaga minhas $_SESSION[], porem, quando eu logo de novo, meu ID na sessio continua o mesmo :S Outro problema que esta acontecendo comigo é que tenho uma function que após executa-la eu uso um session_regenerate_id();, para poder manter a session porem caso usuario faço outro pedido, seja gerado em outro ID. function gerarPedido() { $this->execute("INSERT INTO tb_pedidos (pedido,data,usuario,status) VALUES ('" . session_id() . "','" . date(Ymd) . "','" . $_SESSION['cod_user'] . "','1')"); for ($i = 0; $i<count($_POST['produto']); $i++){ $this->execute("INSERT INTO tb_pedido_itens (pedido,produto,qnt_solicitada) VALUES ('" . session_id() . "','" . $_POST['produto'][$i] . "','" . $_POST['qnt'][$i] . "')"); } unset($_SESSION['produto']); session_regenerate_id(); } Nenhuma das duas funções estao funcionando, sera que esta tendo algum conflito ou algo assim? :S, existe um modo correto de usar session_start()? Estou usando navegador chrome. agradeço muito ai as dicas, obrigado Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 21, 2009 o uso dessas funções é desencorajado há mais de 5 anos no php6 foi removido por completo o php mantem suporte para que todos os que utilizam métodos inaquedados tenham tempo para se atualizar. Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 21, 2009 okay, mas foram substituidos por quais? oque ue posso usar para mudar um id de session e destroir uma session? :S Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 21, 2009 nao utiliza nada.. simplesmente use unset() para apagar um índice. quanto ao session_regenerate_id, nao há necessidade em usá-lo, pois basta controlar os indices de sessão. Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 21, 2009 hinom, como eu posso fazer para mudar um id de session? "controlar os indices" Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Setembro 21, 2009 SESSIONID não precisa ser modificado SESSIONID é o nome do cookie server-side tudo oque você precisa fazer é manipular o array supoerglobal $_SESSION por exemplo, vamos supor uma loja virtual Numa loja virtual geralmente utiliza session para autenticar um usuário e tb para formularios e carrinho de compras basta saber organizar o array $_SESSION['UserLogon'] = array( 'login' => 'foo', 'name' => 'foo bar', 'email' => 'foo@bar', ); não faça por exemplo $_SESSION['login'] = 'foo'; $_SESSION['name'] = 'foo bar'; $_SESSION['email'] = 'foo@bar'; pois se torna desorganizado e quando precisar destruir esses dados, terá que detruir um por um. por isso, é mais simples organizar em arrays multi-dimensionais quando nao quiser mais utilizar os dados, não precisa gerar um novo sessionID. pode manter o mesmo, pois.. daria na mesma.. vamo supor que você queira fazer um logout, unset( $_SESSION['UserLogon'] ); isso destruirá todo o array do índice UserLogon Compartilhar este post Link para o post Compartilhar em outros sites
montano 0 Denunciar post Postado Setembro 22, 2009 obrigado pelas dicas hinom, vou implementar, vlw Compartilhar este post Link para o post Compartilhar em outros sites