Jump to content


Photo

Dúvida Sobre Include


  • Faça o login para participar
23 replies to this topic

#1 2Shady

2Shady

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/03/2010, 00:29

Eu to fazendo um site usando include em varias partes, ai eu peguei uma página e salvei dentro de outra pasta e agora o include ta agindo como se essa outra pasta fosse a raiz, o menu.php fica na pasta raiz do site, tanto q na index eu uso <?php include "menu.php"; ?> ai eu fui botar o menu em outra página de outra pasta e coloquei assim no include <?php include "../menu.php"; ?> ai abrir a página mas ficou com as imagens todas quebradas e os links todos errados, por exemplo: ao invez de nomedosite.com/index.php os links dessa página tão como nomedosite.com/nomedapasta/index.php

Alguem sabe como resolver isso? Eu já dei uma pesquisada no Google parece q tenho q usar variaveis mas não entendir direito como fazer isso. Alguem me ajuda ai por-favor!
valeu!

Edição feita por: 2Shady, 17/03/2010, 00:31.


#2 Willian Gustavo Veiga

Willian Gustavo Veiga

    12 Horas

  • Usuários
  • 175 posts
  • Sexo:Masculino

Posted 17/03/2010, 07:18

Bom dia, tudo bem?

Poste o seu código.

Um abraço, tudo de bom.
Posted Image

#3 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 17/03/2010, 09:10

Amigo, bom dia.
Tudo bom?

Primeiramente, bem vindo ao fórum.
Você pode resolver seu problema usando sempre os caminhos fixos com o uso da variável global $_SERVER. (Se não conhecer dê um var_dump).

Eu recomendo que você antes de pensar na parte técnica, tente estruturar seus diretórios...

Se tiver algum problema com isso, volte aqui com sua estrutura de pastas que podemos lhe ajudar
Abraços

Mateus Antunes
Mateus Antunes
MBASistemas

#4 2Shady

2Shady

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/03/2010, 12:01

Bom dia, tudo bem?

Poste o seu código.

Um abraço, tudo de bom.

Ai vai o código da página que fica em outra pasta e que da problema...

<!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=iso-8859-1" />
<title>Titulo</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
	font-size: 11px;
}
body {
	background-color: #000000;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
a {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
}
a:link {
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #FFFFFF;
}
a:hover {
	text-decoration: none;
	color: #FF0000;
}
a:active {
	text-decoration: none;
	color: #FFFFFF;
}
.style3 {	font-size: 14px;
	font-weight: bold;
	color: #FF0000;
}
.style6 {font-size: 14px; font-weight: bold; color: #FFFFFF; }
.style7 {color: #FFFFFF}
.style8 {	font-size: 14px;
	font-weight: bold;
}
-->
</style></head>
<body>
<table width="955" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200"><?php include "../topo.php"; ?></td>
  </tr>
</table>
<table width="955" align="center">
  <tr>
    <td width="200" valign="top" bgcolor="#111111"><table width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top" bgcolor="#222222"><?php include "../menu.php"; ?></td>
        </tr>
      </table></td>
    <td valign="top" bgcolor="#222222"><table width="100%">
      <tr>
        <td align="center" bgcolor="#000000"><img src="../images/layout/noticias.jpg" /></td>
      </tr>
      <tr>
        <td bgcolor="#000000">&nbsp;</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#000000"><?php include "../copyright.php"; ?></td>
      </tr>
      

    </table>      </td>
    <td width="200" valign="top" bgcolor="#111111"><table width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top" bgcolor="#222222"><?php include "../publicidade.php"; ?></td>
        </tr>
      </table></td>
  </tr>
</table>

</body>
</html>

Amigo, bom dia.
Tudo bom?

Primeiramente, bem vindo ao fórum.
Você pode resolver seu problema usando sempre os caminhos fixos com o uso da variável global $_SERVER. (Se não conhecer dê um var_dump).

Eu recomendo que você antes de pensar na parte técnica, tente estruturar seus diretórios...

Se tiver algum problema com isso, volte aqui com sua estrutura de pastas que podemos lhe ajudar
Abraços

Mateus Antunes

Eu já mexi nas pastas de todo jeito, botei pra la e pra cá mas nada adiantou. Como exatamente eu faço pra usar essa variável? Também não sei oq é var_dump, sou bem novato nessa área de php.

#5 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 17/03/2010, 14:18

Amigo, var_dump

Serve para explodir uma variável.
Bom para testes!

=D

Teste isso:
echo "<pre>";
     var_dump($_SERVER);

São várias informações e entre elas o caminho completo de pastas...
Na posição DOCUMENT_ROOT você encontra o caminho do diretório.
Basta completa-lo com o caminho de seus includes e pronto.

Outra solução é criar alguns defines...

<?php // prepend.php - autoprepended at the top of your tree
define('MAINDIR',dirname(__FILE__) . '/');
define('DL_DIR',MAINDIR . 'downloads/');
define('LIB_DIR',MAINDIR . 'lib/');
?>
Retirado do www.php.net/include

Qualquer dúvida é só voltar ao fórum.
Abraços
Mateus Antunes
Mateus Antunes
MBASistemas

#6 Allan Jones

Allan Jones

    Turista

  • Usuários
  • 57 posts
  • Sexo:Masculino
  • Localidade:Coxim-MS

Posted 17/03/2010, 14:27

O includes não tem q ser assim???
<?php include ("pagina_tal.php"); ?>

#7 Max William

Max William

    12 Horas

  • Usuários
  • 192 posts
  • Sexo:Masculino
  • Localidade:Maringá - Paraná

Posted 17/03/2010, 14:34

@Allan Jones,
Não necessariamente.

@2Shady,
Aparentemente você esta querendo voltar para a raiz para incluir o seu menu novamente certo?
Tente isso.

<?php include $_SERVER["DOCUMENT_ROOT"]."/menu.php"; ?>

Se você estiver fazendo o site no localhost, então vc não precisa colocar a barra antes do arquivo.
<?php include $_SERVER["DOCUMENT_ROOT"]."menu.php"; ?>

hehe, bom isto pode ser configuração do proprio servidor local, eu uso WAMP default, e neste caso não preciso colocar a barra, mas no meu servidor WEB eu tenho que colocar a danada da barra hehe.

cya!

Edição feita por: Max William, 17/03/2010, 14:36.

Se eu lhe ajudei ;) Clique para agradecer!

#8 2Shady

2Shady

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/03/2010, 15:56

Nada ta dando certo :( to quase desistindo de include e indo pro iframe, mas iframe eh tenso...

Pra q serve esse $_SERVER? No lugar de 'DOCUMENT_ROOT' eu tenho que colocar o endereço da pasta que tá o menu.php? Eu to fazendo o site no localhost usando o Apache 2.2. A única coisa q eu queria era deixar o include parecido com o iframe, pq se eu colocar o iframe assim
<IFRAME src="../menu.php" frameBorder=0 width=# height=# scrolling=auto></IFRAME>
ele vai reconhecer normalmente sem mudar o link de nada.

Edição feita por: 2Shady, 17/03/2010, 16:04.


#9 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 17/03/2010, 16:04

Amigo, boa tarde.
Olha só:

$_SERVER['DOCUMENT_ROOT']

Com essa var, você acessa o endereço do código na rais.
Com isso, basta fixas todos os seus includes usando isso!

Você está testando as coisas que estamos lhe mostrando?
Antes de injetar qualquer coisa em seu código, sempre procure o que está fazendo...
Dê um echo $_SERVER['DOCUMENT_ROOT'];

Se não der certo, poste o que você testou e também a sua estrutura de diretórios.
Vale lembrar para evitar problemas, apenas o que testou! O resto do seu formulário não é importante!

Abraços e até a próxima.
Mateus Antunes
Mateus Antunes
MBASistemas

#10 2Shady

2Shady

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/03/2010, 16:23

Amigo, boa tarde.
Olha só:

$_SERVER['DOCUMENT_ROOT']

Com essa var, você acessa o endereço do código na rais.
Com isso, basta fixas todos os seus includes usando isso!

Você está testando as coisas que estamos lhe mostrando?
Antes de injetar qualquer coisa em seu código, sempre procure o que está fazendo...
Dê um echo $_SERVER['DOCUMENT_ROOT'];

Se não der certo, poste o que você testou e também a sua estrutura de diretórios.
Vale lembrar para evitar problemas, apenas o que testou! O resto do seu formulário não é importante!

Abraços e até a próxima.
Mateus Antunes

Eu to colocando o código 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=iso-8859-1" />
<title>Titulo</title>
<style type="text/css">
<!--
body,td,th {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
	font-size: 11px;
}
body {
	background-color: #000000;
	margin-left: 0px;
	margin-top: 0px;
	margin-right: 0px;
	margin-bottom: 0px;
}
a {
	font-family: Verdana, Arial, Helvetica, sans-serif;
	color: #FFFFFF;
}
a:link {
	text-decoration: none;
}
a:visited {
	text-decoration: none;
	color: #FFFFFF;
}
a:hover {
	text-decoration: none;
	color: #FF0000;
}
a:active {
	text-decoration: none;
	color: #FFFFFF;
}
.style3 {	font-size: 14px;
	font-weight: bold;
	color: #FF0000;
}
.style6 {font-size: 14px; font-weight: bold; color: #FFFFFF; }
.style7 {color: #FFFFFF}
.style8 {	font-size: 14px;
	font-weight: bold;
}
-->
</style></head>
<body>
<table width="955" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200"><?php include $_SERVER['DOCUMENT_ROOT'] "/topo.php"; ?></td>
  </tr>
</table>
<table width="955" align="center">
  <tr>
    <td width="200" valign="top" bgcolor="#111111"><table width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top" bgcolor="#222222"><?php include $_SERVER['DOCUMENT_ROOT'] "/menu.php"; ?></td>
        </tr>
      </table></td>
    <td valign="top" bgcolor="#222222"><table width="100%">
      <tr>
        <td align="center" bgcolor="#000000">&nbsp;</td>
      </tr>
      <tr>
        <td bgcolor="#000000">&nbsp;</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#000000"><?php include $_SERVER['DOCUMENT_ROOT'] "/copyright.php"; ?></td>
      </tr>
      

    </table>      </td>
    <td width="200" valign="top" bgcolor="#111111"><table width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top" bgcolor="#222222"><?php include $_SERVER['DOCUMENT_ROOT'] "/menu.php"; ?></td>
        </tr>
      </table></td>
  </tr>
</table>

</body>
</html>

Quando eu coloco desse jeito ai fica dando esse erro

HTTP 500 Internal Server Error
The website cannot display the page
HTTP 500

Most likely causes:
•The website is under maintenance.
•The website has a programming error.

#11 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 17/03/2010, 16:47

Primeiro. Como eu disse, tente adicionar apenas o código importante para a leitura!
Eu sei que é mais fácil adicionar o código todo mas o código focado ajudará muito quem se dispõe a lhe ajudar.

Segundo, está faltando o "." para concatenação.

Além disso, recomendo que baixe alguns tutoriais de PHP para ir se habituando com a sintaxe.
Isso é super importante no início...

Abraços
Mateus Antunes
Mateus Antunes
MBASistemas

#12 2Shady

2Shady

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/03/2010, 16:59

Primeiro. Como eu disse, tente adicionar apenas o código importante para a leitura!
Eu sei que é mais fácil adicionar o código todo mas o código focado ajudará muito quem se dispõe a lhe ajudar.

Segundo, está faltando o "." para concatenação.

Além disso, recomendo que baixe alguns tutoriais de PHP para ir se habituando com a sintaxe.
Isso é super importante no início...

Abraços
Mateus Antunes

Foi mal, eh q eu postei com pressa... a estrutura de diretórios eh essa

Posted Image


O arquivo q eu quero colocar o o menu ta dentro da pasta "letras" e o "menu.php" tá ali na raiz como vc pode ver. Onde eu coloco esse "."?

#13 MBA

MBA

    24 Horas

  • Usuários
  • 412 posts
  • Sexo:Masculino
  • Localidade:Belo Horizonte
  • Interesses:Desenvolvimento WEB

Posted 17/03/2010, 17:04

<?php include $_SERVER['DOCUMENT_ROOT']."/menu.php"; ?>
O "." entra ligando o $_SERVER no "/menu.php"

Qualquer coisa vamos continuando!
Abraços
Mateus Antunes
MBASistemas

#14 2Shady

2Shady

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Masculino

Posted 17/03/2010, 17:16

<?php include $_SERVER['DOCUMENT_ROOT']."/menu.php"; ?>
O "." entra ligando o $_SERVER no "/menu.php"

Qualquer coisa vamos continuando!
Abraços

Então eu tenho q colocar

<?php include $_SERVER['DOCUMENT_ROOT']."/menu.php"; ?>

na página que fica dentro da pasta "letras"? Se sim, não deu certo. Eu coloquei assim na pagina que fica dentro da pasta "letras"

<table width="955" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td width="200"><?php include $_SERVER['DOCUMENT_ROOT']."/topo.php"; ?></td>
  </tr>
</table>
<table width="955" align="center">
  <tr>
    <td width="200" valign="top" bgcolor="#111111"><table width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top" bgcolor="#222222"><?php include $_SERVER['DOCUMENT_ROOT']."/menu.php"; ?></td>
        </tr>
      </table></td>
    <td valign="top" bgcolor="#222222"><table width="100%">
      <tr>
        <td align="center" bgcolor="#000000">&nbsp;</td>
      </tr>
      <tr>
        <td bgcolor="#000000">&nbsp;</td>
      </tr>
      <tr>
        <td align="center" bgcolor="#000000"><?php include $_SERVER['DOCUMENT_ROOT']."/copyright.php"; ?></td>
      </tr>
      

    </table>      </td>
    <td width="200" valign="top" bgcolor="#111111"><table width="100%" cellpadding="0" cellspacing="0">
        <tr>
          <td valign="top" bgcolor="#222222"><?php include $_SERVER['DOCUMENT_ROOT']."/publicidade.php"; ?></td>
        </tr>
      </table></td>
  </tr>
</table>

Eu ainda não entendi esse ".", onde eu devo colocar ele?

Edição feita por: 2Shady, 17/03/2010, 17:16.


#15 Kahor

Kahor

    12 Horas

  • Usuários
  • 230 posts
  • Sexo:Masculino

Posted 17/03/2010, 18:56

O "." (ponto) estava faltando antes do "/menu mas voce ja colocou




Sobre os includes, se na sua pagina voce tiver utilizando o php só para isso, voce poderá usar SSI

O include do SSI é assim:


 <!--#include file="menu.html" --> ou  <!--#include file="../menu.html" -->


Voce terá que salvar a pagina que contém o include com a extensão .shtml

Para visualizar, eu acho que localhost nao roda, só em servidor que aceite o SSI, se o seu servidor web nao aceita, nem tente :P






1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq