Ir para conteúdo
Fórum Script Brasil
  • 0

Destruir só uma sessão:


Carlos Rocha

Pergunta

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 já 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>";}
                          }
                         }

?>
....

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Seguinte, tentei usando unset( $_SESSION['id_cliente'] );

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&atilde;o)</td>
        <td width="150">CPF/CNPJ</td>
        <td align="center" width="100">A&ccedil;&otilde;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

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,9k
×
×
  • Criar Novo...