Ir para conteúdo

POWERED BY:

Arquivado

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

Samroa Machel Web Master

[Resolvido] Erros nos Links em PHP!

Recommended Posts

Boa noite galera!

 

Inseri um código php nos links da seguinte forma na página conteudo.php e menuh.php. Quando roda com easyphp no internet explorer 9 aparece esses erros nas mesmas linha que estão os códigos php da página conteudo.php

 

Segue os códigos do conteudo.php:

 

<?php    
        if($_GET['pagina'] == 'link1')
        {
           include "link1.php";
        } 

        elseif($_GET['pagina'] == 'link2')
        {
           include "link2.php";
	 }

	 elseif($_GET['pagina'] == 'link3')
        {
           include "link3.php";
	 }

	 elseif($_GET['pagina'] == 'link4')
        {
           include "link4.php";
	 }

	 elseif($_GET['pagina'] == 'link5')
        {
           include "link5.php";
	 }

	 elseif($_GET['pagina'] == 'link6')
        {
           include "link6.php";
	 }

	 elseif($_GET['pagina'] == 'link7')
        {
           include "link7.php";
	 }

	 elseif($_GET['pagina'] == 'link8')
        {
           include "link8.php";
	 }

	 elseif($_GET['pagina'] == 'link9')
        {
           include "link9.php";
	 }

	 else          
        {
           include "link1.php";
        }
?>  

 

Na página menhu.php:

 

<ul id="nav"> 
   <li><a href="index.php?pagina=link1" class="link1">link1</a></li>
   <li><a href="index.php?pagina=link2" class="link2">link2</a></li>
   <li><a href="index.php?pagina=link3" class="link3">link3</a></li>
   <li><a href="index.php?pagina=link4" class="link4">link4</a></li>
   <li><a href="index.php?pagina=link5" class="link5">link5</a></li>
   <li><a href="index.php?pagina=link6" class="link6">link6</a></li>
   <li><a href="index.php?pagina=link7" class="link7">link7</a></li>
   <li><a href="index.php?pagina=link8" class="link8">link8</a></li>
   <li><a href="#">Fale Conosco</a>
      <ul>
        <li><a href="index.php?pagina=link9" class="link9">link9</a></li>
      </ul>
   </li>
</ul>

 

Quando rodo no IE9 na primeira vez sem clicar em nenhum link aparece os seguintes erros:

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 15

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 20

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 25

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 30

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 35

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 40

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 45

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 50

 

Notice: Undefined index: pagina in C:\Program Files\EasyPHP-5.3.8.1\www\teste_php\conteudo.php on line 55

 

Por favor, como posso arrumar esses erros? Tem algo errado com os códigos?

 

Desde já agradeço!

 

Boas Festas a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso, com várias opções, o melhor é usar switch porque é mais rápido que if(){}elseif(){}.

#menu.php
if( !isset($_GET["pagina"]) || empty($_GET["pagina"]) ){
   $_GET["pagina"] = "link1.php"
}
switch($_GET["pagina"]){
   case "link1":
       include_once ("link1.php");
       break;
   default:
       include_once("erro.php");
       break;
}

#menuh.php
<!-- você tem que enviar a requisição para conteudo.php não para index.php -->
<li><a href="conteudo.php?pagina=link1" class="link1">link1</a></li>

Compartilhar este post


Link para o post
Compartilhar em outros sites

No php.ini você tem q desabilitar a exibição dos "Notices" !

 

Ao invez de usar o if você poderia usar:

switch($_GET['pagina']){
 case 'link1':
  include_once('link1.php');
  break;

}

Compartilhar este post


Link para o post
Compartilhar em outros sites
No php.ini você tem q desabilitar a exibição dos "Notices" !

Errado, você não deve suprimir nenhum tipo de aviso ou erro gerado pelo PHP... Ainda mais neste caso, que é perfeitamente possível criar um código que não os gere.

Faça como sugerido no post #2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso, com várias opções, o melhor é usar switch porque é mais rápido que if(){}elseif(){}.

#menu.php
if( !isset($_GET["pagina"]) || empty($_GET["pagina"]) ){
   $_GET["pagina"] = "link1.php"
}
switch($_GET["pagina"]){
   case "link1":
       include_once ("link1.php");
       break;
   default:
       include_once("erro.php");
       break;
}

#menuh.php
<!-- você tem que enviar a requisição para conteudo.php não para index.php -->
<li><a href="conteudo.php?pagina=link1" class="link1">link1</a></li>

 

menino_levado,

 

O método que você usou para os menus funcionaram perfeitamente sem erro algum!

 

Muito obrigado!

 

Boas festas a todos!

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.