Carcleo 4 Denunciar post Postado Maio 7, 2008 Destruir só uma sessão: Ola pessoal, teho um problema bastante interessante com sessões. É o seguinte: Tenho uma comboboxque é carregada com nome de empresas e quando escolhida uma empresa na combobox, é aberta uma nova pagina onde sera exibido um menu permitiundo adicionar, editar devedores para aquela empresa. Para isso tive a ideia de, ao chegar com o id da empresa(cliente) na pagina de devedores, gravar essa id numa variavel de sessão para tel a qualquer tempo. acontece que, na hora que eu troco de empresa na combo, a sessão mantem a id do cliente e aí eu só posso visualizar os devedors da primeira empresa escolhida. Nesse caso, preciso destruir(e criar outra) a sessão que carrega essa id_cliente(só essa sessão) a cada ez que eu escolher outra empresa na combo. veja só: (Como é que saio dessa? menu.php <H3>Empresa</H3> <?php $sql = mysql_query("select * from clientes where filial='$SESSAOfilial'"); $num = mysql_num_rows($sql); if ($num == 0) { echo ('Não há clientes cadastrados para esta filial');} else { ?> <SELECT class=forms onchange=parent.location=this.value name=select> <OPTION value=""></OPTION> <? while($row = mysql_fetch_array($sql)) { ?> <OPTION class=status_on value=../filiais/cad_devedores.php?id_cliente=<?=$row[0]; ?>><?=$row[2]; ?><?=$row[3]; ?></OPTION> <? } ?> </SELECT> <? } } ?> devedores.php <?php //session_start(); //session_register("id_cliente"); echo $id_cliente; echo "oi"; ?> <script src="../global/sistema.js" type="text/javascript"></script> <center><h2><a href="cad_devedores.php?acao=cadastro">Adicionar Devedor</a></h2> </center> <center><h2><a href="cad_devedores.php?acao=listar">Editar Devedor</a></h2> </center> <?php if ($acao == "cadastrar") { if ($cpf == "") { $dcto = "cnpj"; } if ($cnpj == "") { $dcto = "cpf"; } if ($dcto == "cpf") { $valor = $cpf; } if ($dcto == "cnpj") { $valor = $cnpj; } $pesq = mysql_query("select * from devedores where $dcto = '$valor' and filial = '$SESSAOfilial' and cliente = '$id_cliente'"); $conta = mysql_num_rows($pesq); if ($conta <> 0) { echo "<script>alert('Devedor ja cadastrado para este Cliente. Consulte!'); document.location='cad_devedores.php?acao=listar'</script>";} ELSE { $sql = mysql_query("INSERT INTO devedores(pessoa, fantasia, razao, cnpj, ie, nome, cpf, rg, pai, paicpf, mae, maecpf, trabalho, teltrabalho, endereco, bairro, cidade, UF, cep, email, atividade, cliente, filial) VALUES('$pessoa', '$fantasia', '$razao', '$cnpj', '$ie', '$nome', '$cpf', '$rg', '$pai', '$paicpf', '$mae', '$maecpf', '$trabalho', '$teltrabalho', '$endereco', '$bairro', '$cidade', '$uf', '$cep', '$email', '$atividade', '$id_cliente', '$SESSAOfilial')"); if ($sql) { echo "<script>alert('Cadastro OK $dcto = $valor and filial = $SESSAOfilial!'); document.location='cad_devedores.php?acao=listar'</script>";} ELSE { echo "<script>alert('Ouve um erro no cadastro. Tente novamente!'); document.location='cad_devedores.php?acao=cadastro'</script>";} } } ?> .... Compartilhar este post Link para o post Compartilhar em outros sites
Alaerte Gabriel 662 Denunciar post Postado Maio 7, 2008 acho que é session_destroy('id_cliente'); ? Compartilhar este post Link para o post Compartilhar em outros sites
andreymor 0 Denunciar post Postado Maio 7, 2008 ou...... $_SESSION['id_cliente'] = NULL; Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 7, 2008 ACHO que não expliquei direito, eu preciso comparar cada vez que eu trocar la no menu(na combobox), se id da empresa muda. caso o id da empresa mudar, eu preciso destruir o valor da variavel id_cliente referente a empresa(cliente) anterior e registrar o novo valor(da nova empresa(cliente)) selecionada na combo para a sessão dai em diante, as opções editar, listar, serao referenciadas a empresa(cliente) escolhida na combopor causa do novo valor que foi registrdo na sessão. no caso, empresa id=1, id=2... Compartilhar este post Link para o post Compartilhar em outros sites
hinom 5 Denunciar post Postado Maio 7, 2008 unset( $_SESSION['nomeDaSessao'] ); http://php.net/unset Compartilhar este post Link para o post Compartilhar em outros sites
Carcleo 4 Denunciar post Postado Maio 7, 2008 Seguinte, até que funcionou, porem, quando eu cliko em um link diferente, ainda que n mesma pagina, a sessão é destruida: veja: no menu eu faço: menu_gere_filial.php <OPTION class=status_on value=../filiais/cad_devedores.php?id_cliente=<?=$row[0]; ?>><?=$row[2]; ?><?=$row[3]; ?></OPTION>Onde id_cliente recebera o id do cliente que eu vou fazer as ações(editar...exibir..).Porem, cada vez que eu trocar de cliente, tem que trocar o id para que, quando chegar na pagina que recebera o link, a sessão ser registrada la. Até aqui ta funcionando. O problema agora é que, cada ação nesse pagina é delimitada por um bloco php --> if(acao=="") {}. Portanto, depois que clikei por exemplo em cadastrar devedor, a sessão com o numero do cliente não vai, ou ai vazia. cheguei até a por um echo l pra imprimir a sessão mas sai rm branco Veja: cad_devedores_conteudo.php <script src="../global/sistema.js" type="text/javascript"></script> <center><h2><a href="cad_devedores.php?acao=cadastro">Adicionar Devedor</a></h2> </center> <center><h2><a href="cad_devedores.php?acao=listar">Editar Devedor</a></h2> </center> <?php unset( $_SESSION['id_cliente'] ); echo "oi- "; echo $id_cliente; //aqui imprime o valor da id_cliente direitinho echo " -oi"; ... <?php if ($acao == "listar"){ // $Resultado = MySQL_query("SELECT * FROM devedores WHERE cliente='$cliente' and filial = '$SESSAOfilial'"); $Resultado = mysql_query("SELECT * FROM devedores WHERE filial = '$SESSAOfilial' and cliente = '$id_cliente'"); ?> <h2>Resultado da Busca </h2> <?php echo "oi- "; echo $id_cliente; //aqui NÃO imprime o valor da id_cliente echo " -oi"; ?> <table> <tr> <td width="300">Nome / Fantasia (Razão)</td> <td width="150">CPF/CNPJ</td> <td align="center" width="100">Ações</td> </tr> <?php while(list($id, $pessoa, $fantasia, $rasao, $cnpj, $ie, $nome, $cpf, $rg, $pai, $paicpf, $mae, $maecpf, $trabalho, $teltrabalho, $endereco, $bairro, $cidade, $uf, $cep, $email, $tel1, $tel2, $tel3, $atividade, $cliente, $filial) = mysql_fetch_row($Resultado)) { ?> <tr> <td><?=$nome; ?><?=$rasao; ?></td> <td align="right"><?=$cpf; ?><?=$cnpj; ?></td> <td align="center"><a href="?acao=editar&id=<?=$id; ?>"><img src="../imagens/site/edit.gif" alt="Modificar" border="0" hspace="5" /></a></td> </tr> <? } ?> </table> <br /><br /> <? } ?> ?> Só + uma observação: Se possivel, essa variavel de sessão só funcionar nessa pagina Compartilhar este post Link para o post Compartilhar em outros sites