Jump to content
Israel Lira

<br /><b>Notice</b>: Undefined variable: codigo in

Recommended Posts

Fiz algumas buscas, até encontrei várias referencias apontando o mesmo erro que o meu, porém, não entendi ao certo o problema.

 

Ao abrir uma pagina estou obtendo o seguinte erro:

<br /><b>Notice</b>:  Undefined variable: codigo in <b>D:\PROJETOS\LOCALHOST\FOLHADEPAGAMENTO\CARGOSEDITAR.php</b> on line <b>36</b><br />

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> Editar cargo </title>
    <link href="css/form.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<?php

        if (!empty($_GET['codigo'])) 
        {
                  /**
                       Conecta com o PostgreSQL
                   */
                   $dns = "port=55432 dbname=folha user=fortesrh password=1234";
                   $db = pg_connect($dns);

                   $codigo = (int) $_GET['codigo'];

                   $resultado = pg_query($db, "SELECT * FROM cargo WHERE codigo='{$codigo}'");    
                  

                  

                   $row = pg_fetch_assoc($resultado);
                
                   $codigo = $row['codigo'];
                   $descricao = $row['descricao'];
                   $salario = $row['salario'];
        }
?>
    <body>

    <form enctype="multipart/form-data" action="http://localhost/FOLHADEPAGAMENTO/CARGOSALVARUPDATE.php" method="POST">
            <label>Código</label>
            <input name="codigo" readonly="1" type="text" style="width: 30%" value="<?=$codigo?>"><br>
    </form>        
            <label>Descrição</label>
            <input name="descricao" readonly="1" type="text" style="width: 50%" value="<?=$descricao?>"><br>

            <label>Salário</label>
            <input name="salario" readonly="1" type="text" style="width: 25%" value="<?=$salario?>"><br>
            <input type="submit">
    </form>

    </body>
</html>

 

Share this post


Link to post
Share on other sites

Nenhuma de suas variáveis estão declaradas caso não estejam recebendo algum valor, você deve declara-las antes da condição IF, ou com um ELSE após a condição IF e colocar as variáveis com valores nulos ou vazios.

Assim:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> Editar cargo </title>
    <link href="css/form.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<?php
if(!empty($_GET['codigo'])){
	/**
	Conecta com o PostgreSQL
	*/
	$dns = "port=55432 dbname=folha user=fortesrh password=1234";
	$db = pg_connect($dns);
	$codigo = (int) $_GET['codigo'];
	$resultado = pg_query($db, "SELECT * FROM cargo WHERE codigo='{$codigo}'");    
	$row = pg_fetch_assoc($resultado);
	$codigo = $row['codigo'];
	$descricao = $row['descricao'];
	$salario = $row['salario'];
} else $codigo = $descricao = $salario = null;
?>
<body>
	<form enctype="multipart/form-data" action="http://localhost/FOLHADEPAGAMENTO/CARGOSALVARUPDATE.php" method="POST">
		<label>Código</label>
		<input name="codigo" readonly="1" type="text" style="width: 30%" value="<?=$codigo?>"><br>      
		<label>Descrição</label>
		<input name="descricao" readonly="1" type="text" style="width: 50%" value="<?=$descricao?>"><br>
		<label>Salário</label>
		<input name="salario" readonly="1" type="text" style="width: 25%" value="<?=$salario?>"><br>
		<input type="submit">
	</form>

	</body>
</html>

 

Share this post


Link to post
Share on other sites

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> Editar cargo </title>
    <link href="css/form.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<?php
if(!empty($_GET['codigo'])){
    /**
    Conecta com o PostgreSQL
    */
    $dns = "port=55432 dbname=folha user=fortesrh password=1234";
    $db = pg_connect($dns);
    $codigo = (int) $_GET['codigo'];
    $resultado = pg_query($db, "SELECT * FROM cargo WHERE codigo='{$codigo}'");    
    $row = pg_fetch_assoc($resultado);
    $codigo = $row['codigo'];
    $descricao = $row['descricao'];
    $salario = $row['salario'];

else $codigo = $descricao = $salario = null;
?>
<body>
    <form enctype="multipart/form-data" action="http://localhost/FOLHADEPAGAMENTO/CARGOSALVARUPDATE.php" method="POST">
        <label>Código</label>
        <input name="codigo" readonly="1" type="text" style="width: 30%" value="<?=$codigo?>"><br>      
        <label>Descrição</label>
        <input name="descricao" readonly="1" type="text" style="width: 50%" value="<?=$descricao?>"><br>
        <label>Salário</label>
        <input name="salario" readonly="1" type="text" style="width: 25%" value="<?=$salario?>"><br>
        <input type="submit">
    </form>

</body>
</html>

--------------------------------------------------------------------------------

<?php
          
          $dados = $_POST;
          if ($dados['codigo']) {

          /**
               Conecta com o PostgreSQL
           */
           $dns = "port=55432 dbname=folha user=fortesrh password=1234";
           $db = pg_connect($dns);
          
               

               /**
                    Atribui a variável $query a instrução para deletar um registro.
                */
              $query = "UPDATE cargo SET descricao = '{$dados['descricao']}', 
                                         salario = '{$dados['salario']}'
                                         WHERE codigo = '{$dados['codigo']}'";


              $resultado = pg_query($db, $query); /** Executa a consulta na conexão com o banco de dados e com query*/
             
              if ($resultado) {
                print 'Cargo atualizado com sucesso';
              }

              else {
                  print pg_last_error($db);
                  
                }  
               

               /**
                   Fecha a conexão com o PostgreSQL
               */
              
              pg_close ($db);
          
           }
?>

 

 

 

image.png

Share this post


Link to post
Share on other sites

Supondo que esse trecho abaixo seja o o arquivo form.php

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> Editar cargo </title>
    <link href="css/form.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<?php
if(!empty($_GET['codigo'])){
	/**
	Conecta com o PostgreSQL
	*/
	$dns = "port=55432 dbname=folha user=fortesrh password=1234";
	$db = pg_connect($dns);
	$codigo = (int) $_GET['codigo'];
	$resultado = pg_query($db, "SELECT * FROM cargo WHERE codigo='{$codigo}'");    
	$row = pg_fetch_assoc($resultado);
	$codigo = $row['codigo'];
	$descricao = $row['descricao'];
	$salario = $row['salario'];
} else $codigo = $descricao = $salario = null;
?>
<body>
	<form enctype="multipart/form-data" action="http://localhost/FOLHADEPAGAMENTO/CARGOSALVARUPDATE.php" method="POST">
		<label>Código</label>
		<input name="codigo" type="text" style="width: 30%" value="<?=$codigo?>"><br>      
		<label>Descrição</label>
		<input name="descricao" type="text" style="width: 50%" value="<?=$descricao?>"><br>
		<label>Salário</label>
		<input name="salario" type="text" style="width: 25%" value="<?=$salario?>"><br>
		<input type="submit">
	</form>

	</body>
</html>

 

e esse seja o arquivo CARGOSALVARUPDATE.php

<?php
$codigo = isset($_POST["codigo"]) ? $_POST["codigo"] : false;
$descricao = isset($_POST["descricao"]) ? $_POST["descricao"] : "";
$salario = isset($_POST["salario"]) ? $_POST["salario"] : "";
if($codigo){
	/** Conecta com o PostgreSQL */
	$dns = "port=55432 dbname=folha user=fortesrh password=1234";
	$db = pg_connect($dns);
	/** Atribui a variável $query a instrução para deletar um registro. */
	$query = "UPDATE cargo SET descricao = '$descricao', 
	salario = '$salario'
	WHERE codigo = '$codigo'";
	$resultado = pg_query($db, $query); /** Executa a consulta na conexão com o banco de dados e com query*/
	if($resultado) print 'Cargo atualizado com sucesso';
	else print pg_last_error($db);
	/** Fecha a conexão com o PostgreSQL */
	pg_close ($db);
}
?>

Pelo que parece, o form já vem setado a variável $codigo, por exemplo:

http://localhost/form.php?codigo=10

Desta forma retornaria o formulário preenchido. Ao alterar e clicar em Enviar é direcionado via $_POST para o link abaixo:

http://localhost/FOLHADEPAGAMENTO/CARGOSALVARUPDATE.php

Correto?

 

Se for desta forma, os códigos apresentados já estão corrigidos e não há problemas.

 

Agora se você não informar um valor para a variável $codigo, o formulário sempre ficará vazio.

 

O link desta forma retorna um formulário vazio:

http://localhost/form.php

E o link desta forma retornará o formulário preenchido:

http://localhost/form.php?codigo=10

Foi colocado um numero 10 apenas para efeito de entendimento.

 

Edit: a configuração readonly="1" que estava bloqueando a digitação dentro do campo de texto!

Share this post


Link to post
Share on other sites

 

 

image.thumb.png.c22d27835489164812c1d66e92779a50.png

 

 

CARGOSEDITAR.php

 

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title> Editar cargo </title>
    <link href="css/form.css" rel="stylesheet" type="text/css" media="screen" />
</head>
<?php
if(!empty($_GET['codigo'])){
    /**
    Conecta com o PostgreSQL
    */
    $dns = "port=55432 dbname=folha user=fortesrh password=1234";
    $db = pg_connect($dns);
    $codigo = (int) $_GET['codigo'];
    $resultado = pg_query($db, "SELECT * FROM cargo WHERE codigo='{$codigo}'");    
    $row = pg_fetch_assoc($resultado);
    $codigo = $row['codigo'];
    $descricao = $row['descricao'];
    $salario = $row['salario'];
} else $codigo = $descricao = $salario = null;
?>
<body>
    <form enctype="multipart/form-data" action="http://localhost/FOLHADEPAGAMENTO/CARGOSALVARUPDATE.php" method="POST">
        <label>Código</label>
        <input name="codigo" type="text" style="width: 30%" value="<?=$codigo?>"><br>      
        <label>Descrição</label>
        <input name="descricao" type="text" style="width: 50%" value="<?=$descricao?>"><br>
        <label>Salário</label>
        <input name="salario" type="text" style="width: 25%" value="<?=$salario?>"><br>
        <input type="submit">
    </form>

    </body>
</html>

 

 

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.