Ir para conteúdo

POWERED BY:

Arquivado

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

rlp1905

$_SERVER['PHP_SELF'] não pega o index.php

Recommended Posts

fala galera,

 

to criando meu site e estou com um problema ao usar o $_SERVER['PHP_SELF'].

 

uso ele em um switch, para verificar em que página estou e imprimo algumas coisas na tela.

 

um exemplo do código:

 

<?php
switch ($_SERVER['PHP_SELF']){ 
 case "/site/index.php":
  if(isset($leftContent1)){
  echo "<div class=\"leftContentContainer\">";
  echo $leftContent1;
  echo "</div>";
  }
  if(isset($rightContent1)){
   echo "<div class=\"rightContentContainer\">";
   echo $rightContent1;
   if(isset($rightContent2)){
    echo $rightContent2;
   } 
   echo "</div>";
  }
  break;
  case "/site/planos.php":
   if(isset($leftContent1)){
    echo "<div class=\"leftContentContainer2\">";
    echo $leftContent1;
    echo "</div>";
   }
   if(isset($rightContent1)){
    echo "<div class=\"rightContentContainer2\">";
    echo $rightContent1;
    echo "</div>";
   } 
  break;
  default:
   if(isset($contenBlock)){
    echo "<h1 class=\"titleBox\">".$titleContent."</h1>";
    echo "<div class=\"contentBlock\">";
    echo $contenBlock;
    echo "</div>";
   }
  break; 
 }
?>

se eu usar um bando de if's (mais do que já uso), a navegação fica lenta e por isso optei pelo uso do switch na verificação principal.

 

o script do site está rodando em www.yournetools.com/site.

 

quando abre o site não aparece o conteúdo principal, mas quando clica em home ele funciona normal....

 

alguém sabe como me ajudar?

 

vlw galera...

Compartilhar este post


Link para o post
Compartilhar em outros sites

bom pessoal,

 

fiz uma gambiarra aqui, que deu certo...

 

o problema é quando entro no site digitando a url www.yournetools.com/site/

 

o $_SERVER['PHP_SELF'] pega o index.php, mas por algum motivo que eu não sei qual é, o switch não processa....

 

o que eu fiz foi renomear o meu index.php para home.php e criar um novo arquivo index.php com a seguinte informação:

<?php
header("location: home.php");
?>

fazendo isso o nome dapágina é forçado a aparecer na url e assim o código é processado normalmente.

 

se alguém tiver uma solução melhor pro problema, posta aew...

 

vlw....

Compartilhar este post


Link para o post
Compartilhar em outros sites

$_SERVER['SCRIPT_NAME'];
vai pegar só o que vier depois da primeira barra

www.site.com.br/diretorio/index.php

output

/diretorio/index.php

 

Eu usei esse também mas não funcionou...

 

eu acho que o lance é que quando entro no site o index.php não aparece na url e por mais que o SCRIPT_NAME e o PHP_SELF peguem o index mesmo sem ele estar na url o switch não funciona...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tenta fazer assim:

 

switch ($_SERVER['PHP_SELF']){ 
 case "/site/index.php":
 case "/site/": //so acrescentei isso
//Aqui vem o seu codigo

 

<?php
switch ($_SERVER['PHP_SELF']){ 
 case "/site/index.php":
 case "/site/": [color="#ff0000"]//so acrescentei isso[/color]
 if(isset($leftContent1)){
 echo "<div class=\"leftContentContainer\">";
 echo $leftContent1;
 echo "</div>";
 }
 if(isset($rightContent1)){
 echo "<div class=\"rightContentContainer\">";
 echo $rightContent1;
 if(isset($rightContent2)){
 echo $rightContent2;
 } 
 echo "</div>";
 }
 break;
 case "/site/planos.php":
 if(isset($leftContent1)){
 echo "<div class=\"leftContentContainer2\">";
 echo $leftContent1;
 echo "</div>";
 }
 if(isset($rightContent1)){
 echo "<div class=\"rightContentContainer2\">";
 echo $rightContent1;
 echo "</div>";
 } 
 break;
 default:
 if(isset($contenBlock)){
 echo "<h1 class=\"titleBox\">".$titleContent."</h1>";
 echo "<div class=\"contentBlock\">";
 echo $contenBlock;
 echo "</div>";
 }
 break; 
 }
?>

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.