Ir para conteúdo

POWERED BY:

Arquivado

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

Marcos Barbosa

[Resolvido] Guardar valor numa váriavel para usar em outro módulo

Recommended Posts

Boa noite.

 

Pessoal, estou com um problema que imagino ser de fácil solução, mas como sou novo no ramo e estou tentando apreder, não conseguir resolver.

Estou fazendo um sistema e nele tenho o cadastro de funcionário, nelo tenho um módulo de consulta onde o usuário digita o nome ou parte do fucionário e aparece um lista com todos os funcionários, mais ou mesmo assim:

  <tr bgcolor='$cor'>
	<td>$codigo</td>
	<td><a href='movi_dados_laboratoriais.php?codigo_lab=$codigo'>$nome</a><td>
  </tr>";
Até aí beleza, o usuário ao clicar no funcionário desejado o sistema direciona para outra tela, onde os dados são posicionados na tela para alteração ou exclusão, segue abaixo:

<body>
  <form action="movi_dados_laboratoriais1.php" method="post">
    <?php
      include ("conexao.php");		
      $codigo=$_GET['codigo_lab'];	 
					
      $sql="select * from dados_laboratoriais where codigo_lab ='$codigo'";
      $rs=mysql_query($sql) or die ('Erro na Seleção' .mysql_error());
      $linha=mysql_fetch_array($rs);
	
      $codigo=$linha["codigo_lab"];
      $descricao_dlab=$linha["descriscao_lab"];
			
    ?>	
  
    <table width="100%" border="0">
      <tr>
        <td><p align="center"> </p>
          <p align="center"> </p>
          <p align="center"> </p>
          <p align="center"><strong>Movimentação dados  Laboratóriais </strong></p>
          <table width="47%" border="1" align="center">
          <tr>
            <td width="24%"><div align="right"><strong>Descrição:</strong></div></td>
            <td width="76%"><div align="left">
              <input name="descricao_dlab" type="text" id="descricao_dlab" size="50" maxlength="50" value="<?php echo $descricao_dlab?>" />
     	    </div></td>
          </tr>
          <tr>
            <td colspan="2"><label></label>
            <div align="center">
              <label>
	         <input type="submit" name="atualizar" value="atualizar" />
     	         <input type="submit" name="excluir" value="excluir" />
              </label>
            </div></td>
            </tr>
        </table>
          <p> </p>
        <p> </p></td>
      </tr>
    </table>
  </form>
</body>
Quando Quando o usuário clica no botão atualizar ou excluir, o sistema direciona para outro módulo onde faço o tratamento para excluir ou alterar, segue abaixo:

<body>
  <?php
    require("conexao.php");
    $codigo=$_POST["codigo"];
    $nome=$_POST["descriscao_lab"];
		
    $atualizar=$_POST["atualizar"]; 
    $excluir=$_POST["excluir"];
		
    if ($atualizar=="atualizar"){
      mysql_query("update dados_laboratoriais set descriscao_lab='$descriscao_dlab' where codigo_lab='$codigo'") or die ("Erro na Atualização ".mysql_error());
      echo"Atualizado";
    }else{
	mysql_query("delete from dados_laboratoriais where codigo_lab='$codigo'") or die ("Erro na exclusão ".mysql_error());
	echo"Excluido";
    }
?>		
		
</body>
Meu problema, não estou conseguindo guarda o valor na variavel $codigo para poder alterar ou exclui, quando clico em qualquer botão da a mensagem de erro Notice: Undefined index: codigo in C:\wamp\www\exames\movi_dados_laboratoriais1.php on line 12.

Essa linha fica o código: $codigo=$_POST["codigo"];...

 

Como posso fazer para resolver o problema.

 

Grato,

Marcos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carlos, continuo com dúvidas.

1º)O hidden ñ é para colocar deixar o campo inalterado no form ?

2º) Como posso colocar a variavel no action ?

Se observar tenho um form action no movi_dados_laboratoriais.php, e o problema está no mov_dados_laboratoriais1.php.

 

Desde já agradeço sua atenção, é o meu 1º sistema e realmente estou com muitas dúvidas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

1º)O hidden ñ é para colocar deixar o campo inalterado no form ?

 

Não. Para não permitir a alteração, utilize readonly ou disabled

 

2º) Como posso colocar a variavel no action ?

Se observar tenho um form action no movi_dados_laboratoriais.php, e o problema está no mov_dados_laboratoriais1.php.

 

 <form action="movi_dados_laboratoriais1.php?codigo_lab=<?php echo $_GET['codigo_lab']?>" method="post">
Fazendo assim, você precisa trocar a forma de receber a $codigo na página que recebe os dados do formulario, recebendo como $_GET['codigo_lab'].

 

Com isto seu código vai funcionar, mas terá vulnerabilidades. Leia um pouco sobre SQL Injection e segurança, para se prevenir de ataques.

 

Carlos Eduardo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não coloque no action.

coloque no hidden mesmo como disse o Matias.

 

<input type="hidden" name="nome" value="<?php echo $_POST['informacao_desejada'];?>" />

Compartilhar este post


Link para o post
Compartilhar em outros sites

No form da sua página você pode por assim:

<form action="movi_dados_laboratoriais1.php?codigo = $codigo" method="post">

e na página movi_dados_laboratoriais1.php, você recebe o codigo assim

$codigo = $_GET['codigo'];

e boa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo...mas se você quer alterar o registro que está na tela, pra que que o código chave precisa aparecer?

Se eu estou entendendo bem, você quer alterar ou deletar um registro a partir de um id existente.

Sendo assim, você grava isso num campo hidden e quando você for executar uma alteração, você captura o codigo via $_POST.

 

Porque imagina o seguinte:

Toda vez que você coloca uma variavel exposta no action, ela vai aparecer na barra de endereço do navegador. Até aí blza.

Só que imagina se o usuario vê essas informações e por curiosidade resolve "copiar" o link que apareceu na barra de endereço, aí ele abre outra aba no navegador, cola o que ele copiou e altera o id da copia pra um numero qualquer e manda executar.

Dependendo das comparações que você estiver fazendo no script que altera ou deleta, ele pode conseguir executar o comando.

Isso na minha opinião afeta a segurança.

Por isso a ideia de se colocar em um campo hidden.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessaol, tenho muito a agradecer a vocês, consegui resolver o problema graças a dicas fornecidas aqui.

A forma pela qual resolvi foi :

 

<input name="codigo_lab" type="hidden" id="codigo_lab" value="<?php echo $codigo_lab ?>" /> ( em movi_dados_laboratoriais.php)

e recebi os dados assim em movi_dados_laboratoriais1.php: $codigo=$_POST["codigo_lab"];

 

A código foi informado aqui por vocês, mais uma vez muito obrigado pela dica....

 

Abraços,

Marcos

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.