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

erro $_GET, alguém sabe como resolver esse erro ?


Paiva Jr

Pergunta

Tenho a página abaixo que deveria abrir um form para alteração de dados de um "agente", porem acontece o seguinte :

A rotina funciona, ela apresenta o form com os dados a serem alterados e no clique do "salvar", ela grava os dados no disco. Até aí tudo bem, acontece que logo após, em vez de encerrar a página e retornar à pagina anterior, ela como se desse um "refresh", repete tudo de novo (aí acontece o erro abaixo :

Notice: Undefined variable: id in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\www\new homepage\fagentes\editar.php on line 176

Warning: ibase_fetch_row(): conversion error from string "" in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\www\new homepage\fagentes\editar.php on line 179

Notice: Undefined variable: id in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\www\new homepage\fagentes\editar.php on line 188


Warning: ibase_fetch_assoc(): conversion error from string "" in C:\Program Files (x86)\EasyPHP-DevServer-14.1VC11\data\localweb\www\new homepage\fagentes\editar.php on line 190

Código da pagina (abreviei alguns dados para diminuir o post) :

============= aqui inicializo a seção e pego o campo id do get com o codigo do agente a ser alterado.

<?php
session_start(); // Inicia a sessão
if (!isset( $_GET['id'] ) || $_GET['id'] == '') {} else
{ $id = $_GET['id'];}
?>
=================== início ==============================
<!doctype html public "-//w3c//dtd html 4.01 transitional//en" "http://www.w3.org/tr/html4/loose.dtd">
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="css/frame_dados.css" />
<title>alterar agente</title>
<script language="javascript" type="text/javascript">
/* valida email */
function validaemail(campo)
{ --> função de validação do campos e-mail }
/* validação dos agentes */
function valida()
{ função de critica dos dados do form }
</script>
<style type="text/css">
body
{
background-color: #ffffff;
color: #000000;
font-family: arial;
font-size: 13px;
margin: 0;
padding: 0;
}
<!-- outros styles -->
</style>
</head>
<body>
================ seleciono o registro (agente) cujo codigo foi informado no get ($id=$_GET(['id'])
<?php
require_once('../db/conexao.php');
$ibasesql = "select a.*, c.cargo_codigo, c.cargo_nome from t_agentes a inner join t_cargos c on a.agente_cod_cargo = c.cargo_codigo where a.agente_codigo = '$id'";
$ibaseresult = ibase_query($conexao, $ibasesql);
$j = 0;
while (ibase_fetch_row($ibaseresult))
{
$j++; // $j= quantidade de registros pra paginação
}
if ($j > 1)
{
echo "existem mais de um registro com a chave : " . "$id" . " exclua os registros desnecess⳩os !";
//echo "<a href="javascript:window.history.go(-1)">voltar</a>";
}
$ibasesql = "select a.*, c.cargo_codigo, c.cargo_nome from t_agentes a inner join t_cargos c on a.agente_cod_cargo = c.cargo_codigo where a.agente_codigo = '$id'";
$ibaseresult = ibase_query($conexao, $ibasesql);
while ($linha = ibase_fetch_assoc($ibaseresult)) {
//edita os dados do registro
$cod = str_pad($linha["AGENTE_CODIGO"],6,'0',STR_PAD_LEFT);
$nome = substr($linha["AGENTE_NOME"], 0, 50);
$cargo = $linha["AGENTE_COD_CARGO"];
$inicio = $linha["AGENTE_INICIO"];
$termino = $linha["AGENTE_TERMINO"];
$matricula = str_pad(trim($linha["AGENTE_MATRICULA"]),6,'0',STR_PAD_LEFT);
$email = substr($linha["AGENTE_EMAIL"], 0, 50);
}
if(empty($termino))
{
$termino = '0000-00-00';
}
function seleciona_item($valor, $campo) {
return preg_replace("#<option value=\"$valor\">#is", "<option value=\"$valor\" selected=\"selected\">", $campo);
}
function monta_select($campo, $start, $end) {
$select = "<select name=\"$campo\" id=\"$campo\">\n";
for($i = $start; $i <= $end; $i++) {
$select .= "\t<option value=\"". sprintf("%02d", $i) ."\">".sprintf("%02d", $i)."</option>\n";
}
$select .= "</select>\n";
return $select;
}
?>
===================== montagem do form
<div id="geral"> <!-- 0 -->
<div id="data-topo">
</div> <!-- fim div topo' -->
<div id="data-menu" align="center" style="color: #0900c4; border:1px solid black;height: 30px;">
<span style="color:#0000ff;font-family:arial;font-size:21px;">agentes</span>
</div>
<div id="data-conteudo">
<div id="data-esquerda" align="center" style="color: #0900c4; border:1px solid black;"> <!-- 3 -->
</div>
<div id="data-sub-conteudo" align="center" style="color: #0900c4; border:1px solid black;"> </br>
<form name="form1" method="post" action="?i=ok" onsubmit="return valida()">
<table width="750" border="0" align="center">
</br></br>
<tr>
<td width="200">código</td>
<td width="500"><input name="codigo" type="text" id="cod" maxlength="6" size="6" class="textbox" value="<?php echo $cod; ?>" /></td>
</tr>
<tr>
<td width="200">nome</td>
<td width="500"><input name="nome" type="text" id="nome" maxlength="50"size="90" class="textbox" value="<?php echo $nome; ?>" /></td>
</tr>
<tr>
<td width="200">cargo</td>
<td>
<select name="p_cargo" class="textbox" size="1" id="combo_cargo" style="top:120px;width:245px;height:19px;line-height:19px;z-index:3;";>;
<!-- faz o loop para preencher o campo criado com os valores retornados na consulta -->
<?php
$sql_cargo = "select * from t_cargos order by cargo_codigo asc";
$result_cargos = ibase_query($conexao,$sql_cargo);
while($dados = ibase_fetch_assoc($result_cargos))
{
$codc = $dados["CARGO_CODIGO"];
$nomec = $dados["CARGO_NOME"];
if ($codc == $cargo)
{
echo '<option value="' . $codc . '" selected>' . $nomec . '</option>';
}
else
{
echo '<option value="' . $codc . '">' . $nomec . '</option>';
}
}
//fecha o campo select
echo '</select>';
?>
</td>
</tr>
<tr>
<td>data de início</td>
<td>
<?php
$arr = explode("-", $inicio);
echo seleciona_item($arr[2], monta_select("idia", 1, 31));
echo seleciona_item($arr[1], monta_select("imes", 1, 12));
echo seleciona_item($arr[0], monta_select("iano", 1940, 2014));
?>
</td>
</tr>
<tr>
<td>data de término</td>
<td>
<?php
$arr = explode("-", $termino);
echo seleciona_item($arr[2], monta_select("tdia", 0, 31));
echo seleciona_item($arr[1], monta_select("tmes", 0, 12));
echo seleciona_item($arr[0], monta_select("tano", 0, 2014));
?>
</td>
</tr>
<tr>
<tr>
<td width="200">matrícula</td>
<td width="500"><input name="matricula" type="text" id="matricula" maxlength="6" class="textbox" value="<?php echo $matricula; ?>" /></td>
</tr>
<tr>
<td width="200">email</td>
<td><input name="email" type="text" id="email" maxlength="45"class="textbox" value="<?php echo $email; ?>" /></td>
</tr>
<tr>
<td></br></br></br></br></br></td>
<td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp
<input type="button" value="&nbsp;&nbsp;&nbsp;voltar&nbsp;&nbsp;&nbsp;" onclick="javascript: location.href='fagentes.php';" >
<input name="enviar" type="submit" value="&nbsp;&nbsp;&nbsp;salvar&nbsp;&nbsp;&nbsp;" >
<?php
================= aqui eu regravo o agente ============
if ( isset( $_GET['i'] ) && $_GET['i'] == 'ok')
{
// esta rotina era externa e funcionava perfeitamente bem, agora quero incluir internamente
if($_SERVER["REQUEST_METHOD"] == "POST") {
$codigo = $_POST["codigo"];
$nome = $_POST["nome"];
$email = $_POST["email"];
$cargo = $_POST["p_cargo"];
$matricula = $_POST["matricula"];
$datai = "{$_POST["iano"]}-{$_POST["imes"]}-{$_POST["idia"]}";
$datat = "{$_POST["tano"]}-{$_POST["tmes"]}-{$_POST["tdia"]}";
if ($datai == '00-00-00')
{
$datai = date("Y-m-d");
}
if ($datat == '00-00-00')
{
$datat = date("Y-m-d");
}
$icodigo = intval($codigo);
$ibaseSQL = "SELECT * from p_agentes ('A','$icodigo','$nome','$cargo','$datai', '$datat','$matricula','$email')";
$query = ibase_prepare($ibaseSQL);
$rs=ibase_execute($query) or die(ibase_errmsg());
$row = ibase_fetch_row($rs);
}
// fim da rotina de regravação
?>
</td>
</tr>
</table>
</form>
</div>
<div id="data-direita" align="left" style="color: #0900c4; border:1px solid black;"> <!-- 3 -->
</div>
</div>
</div>
</body>
</html>
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...