Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Destruir só uma sessão:

Recommended Posts

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.