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

Como retiro esses erros: Notice: Use of undefined constant...


lemandrake

Pergunta

Boa noite a todos, sou iniciante em PHP, desenvolvi fazendo pesquisas e estudando, um sistema de gerenciamento com login, ao listar os usuários aparece a seguinte mensagem no servidor localhost:

Notice: Use of undefined constant ID - assumed 'ID' in C:\wamp\www\Administrar\restrito2\listar.php on line 218

Ao listar para exclusão:

Notice: Undefined index: acao in C:\wamp\www\Administrar\restrito2\del2.php on line 92

em outro projeto aparece esse erro:

Notice: Undefined variable: acao in C:\wamp\www\teste\Unidades\preexec.php on line 40

No atendimento online:

Notice Undefined offset: in 1 C\www\atendimento\get.php on line 14

Antes de formatar meu micro utilizava o mesmo wampserver com os mesmos arquivos e com a mesma configurações e não apresentava esses erros, no servidor: http://members.000webhost.com/

também não apresenta os erros, gostaria de saber qual o motivo de estar aparecendo esses erros e se tem como anulá-los configurando o wampserver, o motivo pelo qual necessitaria de corrigi-lo em localhost é que dentro desse sistema de login tenho uma agenda que clientes querem alocar em seus micros para cadastro, e dando esses erros não posso vendê-la, agradeço a atenção...se estiverem lendo meu tópico agradeço e se acharem a solução agradeço duas vezes, valeu mesmo, faça sua boa ação do dia, ajude um infanto em PHP...

Link para o comentário
Compartilhar em outros sites

10 respostass a esta questão

Posts Recomendados

  • 0

Isso não são "erros" são Notices, se tudo estiver funcionando você pode desabilitar eles no PHP.ini ou usando error_reporting(0);

Mas o correto é você ver código a código o motivo do notice e corrigir

exemplo:

Notice: Use of undefined constant ID - assumed 'ID' in C:\wamp\www\Administrar\restrito2\listar.php on line 218

Ele não conseguiu achar uma constante que você chamou na linha 218 como ID. Procure onde você definiu ela, se não achar defina ela de acordo com o que você queria fazer

define("ID","SEI_LA");

Link para o comentário
Compartilhar em outros sites

  • 0

Esse tipo de aviso:

Notice: Use of undefined constant ID - assumed 'ID'

Acontece quando se chama algum índice de array sem estar entre aspas ou apóstrofes, exemplo

$_POST[id] <- Isso gera o aviso

$_POST['id'] <- Isso não gera o aviso

$_POST["id"] <- Isso não gera o aviso

Isso acontece porque quando o valor não está entre aspas ou apóstrofes o PHP "pensa" que é uma constante, não achando uma constante ele assume que aquilo é só um valor que foi passado do modo errado.

Notice: Undefined index: acao

Tá tentando resgatar algo que não existe, exemplo

$_POST['acao']...

Notice: Undefined variable: acao

Tá tentando usar uma variável que também não existe

O último erro é bem genérico...

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço as respostas,vou postar o código que lista os usuários, é que acima de cada usuário, senha, login eu fiz uma tabela:

exemplo:

nome login senha

leandro teste teste

<?php



// Fazemos o include do arquivo com as config do banco de dados



include "mysqlconfig.php";



// Executa a cláusula SQL



include "mysqllistar.php";



//Executa a consulta



$sql = "SELECT * FROM sistema_de_login ORDER BY usuario_id ASC";



$res = mysqllistar($conect,$sql);



?>



<table width=100% border="2" cellspacing=0 bordercolor="#0033CC" cellpading=0>



<?php



    $cont = 0;



   // Exibe o resultado da nossa consulta



   while ($row = mysql_fetch_array($res))



   {    // Zebramos nossa linha da tabela onde pegamos o cont dividimos por 2



           // se o resto for zero mostramos uma cor, se não for mostramos outra



        if ($cont % 2 == 0)



        {



            $cor = "#f2f2f2";



        }



        else



        {



            $cor = "#ffffff";



        }


 echo "<tr bgcolor='#CCCCCC'>";

         echo "<td align=center>".ID."</td>";

    echo "<td align=center>".NOME."</td>";


    echo "<td align=center>".EMAIL."</td>";



    echo "<td align=center>".TELEFONE."</td>";

     echo "<td align=center>".LOGIN."</td>";

     echo "<td align=center>".SENHA."</td>";


    echo "</tr>";

         #exibir

    echo "<tr bgcolor='".$cor."'>";

        echo "<td align=center>".$row['usuario_id']."</td>";

    echo "<td align=center>".$row['nome']."</td>";

        echo "<td align=center>".$row['email']."</td>";

        echo "<td align=center>".$row['telefone']."</td>";

        echo "<td align=center>".$row['login']."</td>";

        echo "<td align=center>".$row['senha']."</td>";

    echo "</tr>";



    $cont = $cont + 1;



  }



?>

O mais interessante é que antes de formatar meu micro e ter de instalar o wampserver de novo não dava esses erros, os arquivos são os mesmos, não alterei os códigos e no servidor 000webhost.com não apresenta os erros, sabe por quê?

Editado por Norivan Oliveira
Utilizar o BBCode
Link para o comentário
Compartilhar em outros sites

  • 0

Como já fii citado isso não são erros, são avisos, é interessante que você dê uma pesquisada, basta alterar a configuraçãod o seu PHP.INI que os avisos vão ser omitidos.

Pra que você está fazendo isso:

echo "<td align=center>".ID."</td>";

echo "<td align=center>".NOME."</td>";

echo "<td align=center>".EMAIL."</td>";

echo "<td align=center>".TELEFONE."</td>";

echo "<td align=center>".LOGIN."</td>";

echo "<td align=center>".SENHA."</td>";

Pra que concatenar ID? NOME? EMAIL? etc...

Link para o comentário
Compartilhar em outros sites

  • 0

É meio estranho isso que eu fiz, mas vou explicar o motivo, é que será feito cadastro de vários usuários, cada usuário exibido aparecerá acima suas descrições, ex:

1nome login senha

Leandro teste teste

2nome login senha

Rodrigo teste teste

A pessoa que eu fiz o sistema reclamou e disse quando tivesse vários usuários teria que subir a barra de rolagem toda hora para lembrar que correspondia cada característica, a solução que encontrei foi zebrar com uma tabela acima de cada usuário com suas devidas descrições, isso que você comentou sobre o php.ini, eu acho que isso mesmo, afinal antes funcionava, formatei meu micro e esqueci as configuraçõe que havia feito, fico mais sossegado sabendo que não são erros e sim avisos, sabe que opção que devo alterar para resolver esse problema no php.ini

Agradeço a atenção, valeu mesmo!!!!!!!!!!!!!!!!!!!!!!!!

Como já fii citado isso não são erros, são avisos, é interessante que você dê uma pesquisada, basta alterar a configuraçãod o seu PHP.INI que os avisos vão ser omitidos.

Pra que você está fazendo isso:

echo "<td align=center>".ID."</td>";

echo "<td align=center>".NOME."</td>";

echo "<td align=center>".EMAIL."</td>";

echo "<td align=center>".TELEFONE."</td>";

echo "<td align=center>".LOGIN."</td>";

echo "<td align=center>".SENHA."</td>";

Pra que concatenar ID? NOME? EMAIL? etc...

Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço a resposta, vou tentar mudar o php.ini, para mim não interessa arrumar o código logo que no servidor externo funciona perfeitamente, apenas servidor local que não, fico com dúvidas em relação ao php. pois tudo na vida tem um início, estou iniciando, sou tec.em informática, webdesigner e faço animações em flash, comecei a programar faz pouco tempo, estou me virando para não fazer cursos...cursos que fiz foi de delphi, pascal e vb, a lógica é parecida, mas não igual, encontrarei dificuldades e serei humilde o bastante para perguntar para quem entende, as pessoas que têm mais informações, não custa repassá-las, ter informações, em vez de detê-las...

Agradeço a atenção, desculpe qualquer coisa...

Valeu....

Editado por lemandrake
Link para o comentário
Compartilhar em outros sites

  • 0

Agradeço a boa vontade de todos, alterei o PHP.ini como foi mostrado no link:

mudei display_errors=on p/ off

A segunda forma de corrigir esses erros é adiconando dentro do php esta linha:

error_reporting(E_ALL & ~E_NOTICE & ~E_WARNING);

Sei que não é uma solução, apenas uma camuflagem, o ruim que cada vez que tenho que verificar se há erros nas páginas tenho que religar o display_errors=on, mas uma pergunta, por que que será que no servidor (000webhost.com) que utilizo para alocar as páginas não aparece esses erros?

Agradeço a resposta, vou tentar mudar o php.ini, para mim não interessa arrumar o código logo que no servidor externo funciona perfeitamente, apenas servidor local que não, fico com dúvidas em relação ao php. pois tudo na vida tem um início, estou iniciando, sou tec.em informática, webdesigner e faço animações em flash, comecei a programar faz pouco tempo, estou me virando para não fazer cursos...cursos que fiz foi de delphi, pascal e vb, a lógica é parecida, mas não igual, encontrarei dificuldades e serei humilde o bastante para perguntar para quem entende, as pessoas que têm mais informações, não custa repassá-las, ter informações, em vez de detê-las...

Agradeço a atenção, desculpe qualquer coisa...

Valeu....

Editado por lemandrake
Link para o comentário
Compartilhar em outros sites

  • 0

Em servidores de produção o padrão é mostrar apenas erros fatais, ou seja, erros que se ocorrerem encerram o processamento do script, esse tipo de aviso (notice) só deve ser usado no servidor de desenvolvimento, ou seja, enquanto você está fazendo o script, pois nesse momento é útil ter esse tipo de informação.

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