Ir para conteúdo

Arquivado

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

João M.

Notice: Undefined index: funcao in >>> if(isset(&

Recommended Posts

Vitor Cometti, mas o meu problema não esta sendo mostrar o detalhes por enquanto, se eu colocar o código do if isset() a pagina portfolio não aparece conteudo, e note que eu estou passando algo na url aqui nesse trecho, para mostrar os detalhes de tal ID, olhe..

 

                <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>">

 

Veja o exemplo na foto:

http://www.speedyshare.com/files/28142971/exemplo.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, ela verifica se estou passando algo pela URL, se eu passar na url que funcao = detalhes ela mostra uma coisa, else (se não) ela mostra outra, ou posso fazer assim também, se eu passar na url que funcao != detalhes ela mostra uma coisa, else (se não) mostra outra.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olhe como esta o código agora, era pra estar certo, mas não aparece conteúdo na pagina portfólio, não entendo o porque!

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
include "css.php";
include "config.php";
?>
<body>

<div id="fundo_paginas">
<div id="geral_conteudo"> 

<?php
include "menu.php";
?>

	<div id="div_geral_banner">
       <div id="banner_direita"> 
       <div id="titulo_banner_right"> 
       <div id="texto_banner">
       Destaques
       </div><!-- texto_banner -->
       <div id="banner_right"> 

       </div><!-- banner_right -->
       </div><!-- titulo_banner_right -->
       <div id="div_banner_promo">

       <div id="banner_promo">

       <div id="titulo_promo">
       Promoção
       </div><!-- titulo_promo -->

       </div><!-- banner_promo -->

       </div><!-- div_banner_promo -->
       </div><!-- banner_direita -->
       </div><!-- div_geral_banner -->
       <div id="fundo_conteudo">
       <div id="area_conteudo"> 

       <div id="titulo_conteudo"> 
       <div id="texto_titulo"> 
       Portifólio
       </div> <!--texto_titulo -->
       </div> <!--titulo_conteudo -->

       <div id="conteudo2">
       <div id="img_conteudo">
       <div id="conteudo">


           <?php
		if(isset($_GET['funcao'])){//verifica se existe
			if($_GET['funcao'] != "detalhes"){//se diferente de detalhes
		 $sql_vizualizar = "SELECT * FROM portfolio ORDER BY id";
		 $query = mysql_query($sql_vizualizar) or exit(mysql_error());
		 while($linha = mysql_fetch_array($query)){
			$pega_imagem = $linha['imagem']; 
			$pega_descricao = $linha['descricao']; 
			$pega_titulo = $linha['titulo']; 
			$pega_id = $linha['id']; 
		?>
       	<div id="trabalhos"> 
           	<div class="titulo_trabalho">
               <div class="texto_titulo_trabalho">
               <?php echo $pega_titulo ?>
               </div><!-- texto_titulo_trabalho -->
               </div><!-- titulo_trabalho -->
           	<div class="foto_trabalho">
               <img src="imagens/<?php echo $pega_imagem ?>" width="160" height="179" alt="" />              
               </div> <!-- foto_trabalho -->
               <div class="descricao_trabalho"> 
               <?php echo $pega_descricao ?>
               </div> <!-- descricao_trabalho -->

               <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>">
               <div class="menu_trabalhos"> 
               <div style="margin-top:60px; margin-left:10px;"><img src="imagens/botao_info.png"/></div>
               </div> <!-- menu_trabalhos -->
               </a>
          </div> <!-- trabalhos -->       
<?php
}
?>
<?php
}else{		
		$pega_id = $_GET['id'];
		$sql = mysql_query("SELECT * FROM portfolio where id ='$pega_id'");
		while($linha = mysql_fetch_array($sql)){
}
?>

<div id="detalhes"> 
Aqui dentro vai o conteudo dos detalhes
</div>

<?php
}
?>
<?php
}
?>

</div> <!-- conteudo -->
       </div> <!-- img_conteudo -->
      	</div> <!-- conteudo2 -->


       </div> <!-- area_conteudo -->
       </div> <!-- fundo_conteudo -->
   <div style="clear:both"></div>        
   </div> <!-- geral_conteudo -->
</div><!-- fundo_paginas -->

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja se ajuda

if(isset($_GET['funcao'])){//verifica se foi passada a variavel funcao na URL 
  if($_GET['funcao'] == "detalhes"){//se a variável funcao for igual a detalhes 
     //aki seu código 
  }else{// se funcao for diferente de detalhes 
     //aki seu código 
  } 
}else{//se não for passada variáavel funcao na URL
//aki seu código
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloquei como você sugeriu, e agora mostro conteúdo normal do portfolio e mostrou isso no topo do conteudo:

 

Notice: Undefined index: funcao in C:\wamp\www\portifolio.php on line 59

 

Porém se eu clicar pra mostrar detalhes ele volta pra pagina inicial index.php com esta url la encima http://localhost/index.php?pg=portfolio&funcao=detalhes&id=1

 

Veja como ficou o código:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
include "css.php";
include "config.php";
?>
<body>

<div id="fundo_paginas">
<div id="geral_conteudo"> 

<?php
include "menu.php";
?>

	<div id="div_geral_banner">
       <div id="banner_direita"> 
       <div id="titulo_banner_right"> 
       <div id="texto_banner">
       Destaques
       </div><!-- texto_banner -->
       <div id="banner_right"> 

       </div><!-- banner_right -->
       </div><!-- titulo_banner_right -->
       <div id="div_banner_promo">

       <div id="banner_promo">

       <div id="titulo_promo">
       Promoção
       </div><!-- titulo_promo -->

       </div><!-- banner_promo -->

       </div><!-- div_banner_promo -->
       </div><!-- banner_direita -->
       </div><!-- div_geral_banner -->
       <div id="fundo_conteudo">
       <div id="area_conteudo"> 

       <div id="titulo_conteudo"> 
       <div id="texto_titulo"> 
       Portifólio
       </div> <!--texto_titulo -->
       </div> <!--titulo_conteudo -->

       <div id="conteudo2">
       <div id="img_conteudo">
       <div id="conteudo">


           <?php
		if(!isset($_GET['funcao'])){//verifica se existe
			if($_GET['funcao'] != "detalhes"){//se diferente de detalhes
		 $sql_vizualizar = "SELECT * FROM portfolio ORDER BY id";
		 $query = mysql_query($sql_vizualizar) or exit(mysql_error());
		 while($linha = mysql_fetch_array($query)){
			$pega_imagem = $linha['imagem']; 
			$pega_descricao = $linha['descricao']; 
			$pega_titulo = $linha['titulo']; 
			$pega_id = $linha['id']; 
		?>
       	<div id="trabalhos"> 
           	<div class="titulo_trabalho">
               <div class="texto_titulo_trabalho">
               <?php echo $pega_titulo ?>
               </div><!-- texto_titulo_trabalho -->
               </div><!-- titulo_trabalho -->
           	<div class="foto_trabalho">
               <img src="imagens/<?php echo $pega_imagem ?>" width="160" height="179" alt="" />              
               </div> <!-- foto_trabalho -->
               <div class="descricao_trabalho"> 
               <?php echo $pega_descricao ?>
               </div> <!-- descricao_trabalho -->

               <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>">
               <div class="menu_trabalhos"> 
               <div style="margin-top:60px; margin-left:10px;"><img src="imagens/botao_info.png"/></div>
               </div> <!-- menu_trabalhos -->
               </a>
          </div> <!-- trabalhos -->       
<?php
}
?>
<?php
}else{		
		$pega_id = $_GET['id'];
		$sql = mysql_query("SELECT * FROM portfolio where id ='$pega_id'");
		while($linha = mysql_fetch_array($sql)){
}
?>

<div id="detalhes"> 
Aqui dentro vai o conteudo dos detalhes
</div>

<?php
}
?>

<?php
}else{		

}
?>

<div id="detalhes"> 
Nao foi passada url
</div>

</div> <!-- conteudo -->
       </div> <!-- img_conteudo -->
      	</div> <!-- conteudo2 -->


       </div> <!-- area_conteudo -->
       </div> <!-- fundo_conteudo -->
   <div style="clear:both"></div>        
   </div> <!-- geral_conteudo -->
</div><!-- fundo_paginas -->

</body>
</html>

Compartilhar este post


Link para o post
Compartilhar em outros sites

você não está entendendo o que você está fazendo

olha isso aqui

 

if(!isset($_GET['funcao'])){//verifica se existe 

 

isso significa que vai entrar no if não existir a variável funcao, observe a exclamação '!' que você colocou antes do isset

 

qual seu conhecimento de linguagem de programação???

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja o que você mesmo falou:

 

Se não estiver setado (!isset) a variável vai mostrar um conteúdo[...]

Pergunta: Como você vai mostrar o conteúdo se NÃO está setado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro Deleu

 

exclamação ! é o operador de negação

equivale ao not em outras linguagens de programação

 

a função isset() retorna verdadeiro ou falso

e operador ! na frente assim !isset() vai retorna o inverso

leia

http://www.php.net/manual/pt_BR/language.operators.comparison.php

 

agora respondendo a sua pergunta

if(isset($variavel)){//se existir $variável
  //aqui o código
}else{//se não existir
  //aqui o código
}

 

ou

if(!isset($variavel)){//se não existir $variável
  //aqui o código
}else{//se existir
  //aqui o código
}

 

João,

 

no seu caso parece que você está com dificuldade em entender os ifs aninhados

 

if(condição1){
  if(condição2){//só chega nessa condição se entrar na condição1

  }//fim da condição2
  else{//se a condição2 for falsa

  }//fim do else
}//fim da condição1
else{//se a condição1 for falsa entra aqui

}

 

dê uma lida no manual sobre o assunto aqui

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom na verdade encurtei o código e simplifiquei, deixei assim e funcionou, apenas agora ta aparecendo um errinho no topo e embaixo do conteudo:

 

Notice: Undefined index: funcao in C:\wamp\www\portfolio.php on line 58

 

Conteudo

 

Notice: Undefined index: funcao in C:\wamp\www\portfolio.php on line 93

 

 

Código ficou assim:

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<?php
include "css.php";
include "config.php";
?>
<body>

<div id="fundo_paginas">
<div id="geral_conteudo"> 

<?php
include "menu.php";
?>

	<div id="div_geral_banner">
       <div id="banner_direita"> 
       <div id="titulo_banner_right"> 
       <div id="texto_banner">
       Destaques
       </div><!-- texto_banner -->
       <div id="banner_right"> 

       </div><!-- banner_right -->
       </div><!-- titulo_banner_right -->
       <div id="div_banner_promo">

       <div id="banner_promo">

       <div id="titulo_promo">
       Promoção
       </div><!-- titulo_promo -->

       </div><!-- banner_promo -->

       </div><!-- div_banner_promo -->
       </div><!-- banner_direita -->
       </div><!-- div_geral_banner -->
       <div id="fundo_conteudo">
       <div id="area_conteudo"> 

       <div id="titulo_conteudo"> 
       <div id="texto_titulo"> 
       Portifólio
       </div> <!--texto_titulo -->
       </div> <!--titulo_conteudo -->

       <div id="conteudo2">
       <div id="img_conteudo">
       <div id="conteudo">


           <?php
         if($_GET['funcao'] != "detalhes"){
		 $sql_vizualizar = "SELECT * FROM portfolio ORDER BY id";
		 $query = mysql_query($sql_vizualizar) or exit(mysql_error());
		 while($linha = mysql_fetch_array($query)){
			$pega_imagem = $linha['imagem']; 
			$pega_descricao = $linha['descricao']; 
			$pega_titulo = $linha['titulo']; 
			$pega_id = $linha['id']; 
		?>
       	<div id="trabalhos"> 
           	<div class="titulo_trabalho">
               <div class="texto_titulo_trabalho">
               <?php echo $pega_titulo ?>
               </div><!-- texto_titulo_trabalho -->
               </div><!-- titulo_trabalho -->
           	<div class="foto_trabalho">
               <img src="imagens/<?php echo $pega_imagem ?>" width="160" height="179" alt="" />              
               </div> <!-- foto_trabalho -->
               <div class="descricao_trabalho"> 
               <?php echo $pega_descricao ?>
               </div> <!-- descricao_trabalho -->

               <a href="?pg=portfolio&funcao=detalhes&id=<?php echo $pega_id ?>">
               <div class="menu_trabalhos"> 
               <div style="margin-top:60px; margin-left:10px;"><img src="imagens/botao_info.png"/></div>
               </div> <!-- menu_trabalhos -->
               </a>
          </div> <!-- trabalhos -->       
<?php
}
?>
<?php
}
?>
<?php	
         if($_GET['funcao'] == "detalhes"){
		$pega_id = $_GET['id'];
		$sql = mysql_query("SELECT * FROM portfolio where id ='$pega_id'");
		while($linha = mysql_fetch_array($sql)){
			$pega_imagem = $linha['imagem']; 
			$pega_descricao = $linha['descricao']; 
			$pega_titulo = $linha['titulo']; 
			$pega_id = $linha['id']; 
}
?>

<div id="detalhes"> 
<?php echo $pega_descricao ?>
</div>

<?php
}
?>

</div> <!-- conteudo -->
       </div> <!-- img_conteudo -->
      	</div> <!-- conteudo2 -->


       </div> <!-- area_conteudo -->
       </div> <!-- fundo_conteudo -->
   <div style="clear:both"></div>        
   </div> <!-- geral_conteudo -->
</div><!-- fundo_paginas -->

</body>
</html>

 

Alguma sugestão de como remover estas Notificações? (tem como tirar pelo php.ini, mas queria resolver sem ter que mexer lá).

Compartilhar este post


Link para o post
Compartilhar em outros sites

a função tem de existir antes de ser requisitada:

 

ex.:

 

function NOME(){};

 

chamo depois....

 

NOME();

 

você pode deixar de exibir erros colocando no inicio da pagina error_reporting(0);// zero ai ele não mostra os erros vindo do php // exceto mysql_error() por exemplo que ele vai exibir mesmo assim....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para corrigir o erro você tem que verificar se existe o $_GET['funcao'], por isso ta dando @NOTICE, afinal $_GET['funcao'] nao existe e você está comparando ele.

if(isset($_GET['funcao']) != "detalhes"){

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para corrigir o erro você tem que verificar se existe o $_GET['funcao'], por isso ta dando @NOTICE, afinal $_GET['funcao'] nao existe e você está comparando ele.

if(isset($_GET['funcao']) != "detalhes"){

 

andré

tem um erro nessa sua condição

o isset returna true ou false e vai comparar true ou false com "detalhes"

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.