(PHP) Problemas com "include"

E aí, galerinha do GUJ, tudo bem com vocês?
Estou desenvolvendo uma aplicação em PHP, mas me surgiram alguns problemas.
Suponhamos que no meu root da aplicação eu tenha uma página chamada menu.php e uma chamada index.php. Também tenho uma pasta chamada funcionarios, onde encontro as páginas joao.php e maria.php.

Beleza. Se, na página index.php, eu der um “include” na menu.php, ele reconhece bonitinho da seguinte forma:<?php include "menu.php" ?>Agora, se eu dou um “include” do mesmo menu na págian joao.php, ele não reconhece. Para tal, eu preciso indicar o root no caminho:<?php include "../menu.php" ?>

Agora, eu tenho uma página no root chamada funcionarios.php. Nela, eu dou um “include” do menu igual ao primeiro exemplo, e reconhece certinho. Essa página redireciona para os funcionários joão e maria. Agora, se eu acesso a página funcionarios/joao.php, o menu não é reconhecido, e dá erro. Para que na página do joão ele seja reconhecido, lá em cima eu tenho que usar o segundo exemplo, e aí dá pau nos arquivos do root.

Alguém tem ideia de como posso padronizar isso?
O que eu preciso fazer para que tanto as páginas no root quanto as páginas em outras subpastas reconheçam o mesmo “include”?
Valeu, galera!!!

faça o include conforme abaixo em todas as páginas:


include ($_SERVER["DOCUMENT_ROOT"] . '/menu.php');

se não der certo da 1 reply, se der mude o topico para resolvido

abraço’

O que vc pode fazer, por exemplo, é o seguinte.

Defina um arquivo, config.php, e nele cria o seguinte:


define('URL','localhost/_caminho_/');

E quando for chamar com o include passa a URL no local.

<?php include URL.'menu.php'; ?>

Você está usando OO?

Abraço e boa sorte com o projeto.

[quote=fabiozanardi]faça o include conforme abaixo em todas as páginas:


include ($_SERVER["DOCUMENT_ROOT"] . '/menu.php');

se não der certo da 1 reply, se der mude o topico para resolvido

abraço’[/quote]
Opa, fabiozanardi, beleza?
Obrigado pela resposta.
Só há um porém:

$_SERVER[“DOCUMENT_ROOT”] me retorna “blablabla\xampp\htdocs” (por hora, estou rodando localmente), quando ele deveria me retornar “blablabla\xampp\htdocs\folder_da_minha_aplicacao”. É possível isso acontecer?

essa é uma variável do php que sempre vai pegar o local que seu php está, todo include é feito server side, então você não terá problemas, pode usar tranquilamente mesmo migrando de um servidor windows para linux, você nunca + vai precisar mexer nisso

um abraço

[quote=edu_fernandes]O que vc pode fazer, por exemplo, é o seguinte.

Defina um arquivo, config.php, e nele cria o seguinte:


define('URL','localhost/_caminho_/');

E quando for chamar com o include passa a URL no local.

<?php include URL.'menu.php'; ?>

Você está usando OO?

Abraço e boa sorte com o projeto.[/quote]
Opa, edu_fernandes, beleza?
Obrigado pela resposta.

Vou criar o arquivo, sim. Mas eu preciso definir seu uso em que lugar? Ou é só deixá-lo lá que o próprio Apache o lê?
Abraço!

[quote=Nicolas Fernandes][quote=edu_fernandes]O que vc pode fazer, por exemplo, é o seguinte.

Defina um arquivo, config.php, e nele cria o seguinte:


define('URL','localhost/_caminho_/');

E quando for chamar com o include passa a URL no local.

<?php include URL.'menu.php'; ?>

Você está usando OO?

Abraço e boa sorte com o projeto.[/quote]
Opa, edu_fernandes, beleza?
Obrigado pela resposta.

Vou criar o arquivo, sim. Mas eu preciso definir seu uso em que lugar? Ou é só deixá-lo lá que o próprio Apache o lê?
Abraço![/quote]

Opa.

O que vc pode fazer é no seu arquivo de header.php (se tiver) inserir ele.

header.php

include ('config.php')

Expandindo a idéia, neste arquivo poderia deixar configurado seu caminho de bibliotecas, ou outras coisas que use com frequência, como o acesso ao BD, por exemplo. Isso facilita pois terá em um arquivo toda a informação de manipulação, não precisando ir em arquivos, jogados no sistema, ou seja, você tem sua informação centralizada em um documento. O que facilita muito.

Entendeu? Qualquer dúvida só perguntar.

[quote=edu_fernandes]
Opa.

O que vc pode fazer é no seu arquivo de header.php (se tiver) inserir ele.

header.php

include ('config.php')

Expandindo a idéia, neste arquivo poderia deixar configurado seu caminho de bibliotecas, ou outras coisas que use com frequência, como o acesso ao BD, por exemplo. Isso facilita pois terá em um arquivo toda a informação de manipulação, não precisando ir em arquivos, jogados no sistema, ou seja, você tem sua informação centralizada em um documento. O que facilita muito.

Entendeu? Qualquer dúvida só perguntar.[/quote]
Interessante a ideia.
Estou com problemas, também, para o uso de CSS.
Por exemplo:

Na página menu.php eu defino:<link rel="stylesheet" href="css/estilo.css" />Na página funcionarios.php, o link é realizado certinho e a página é renderizada. Na página joao.php, que se encontra no PATH “funcionarios/joao.php”, ele não reconhece. Para reconhecer nessa segunda, eu devo fazer:<link rel="stylesheet" href="../css/estilo.css" />Porém, se eu faço assim, na primeira página (funcionarios.php) o CSS não renderiza!
Seria a mesma linha para resolver esse problema ou seria algo diferente?

Valeu!

O que você pode fazer é o seguinte.

Tudo que for comum: SEPARE. Rss

Vamos por partes…

Menu está em todas as páginas? Se sim vamos criar um header.php e inserir nele os css’s, javascripts, enfim tudo que precisar.

Nas páginas em que for usar o header.php apena faça o include do arquivo .php

Compreende a idéia?

Exemplo de uma estrutura:

header.php

<?php require 'config.php'; ?>
<html>
<header>
   <title></title>
</header>
<body>

content.php

<?php require 'header.php'; ?>

CONTEUDO DA PÁGINA

<?php require 'footer.php'; ?>

footer.php

   <footer></footer>
</body>
</html>

Essa é a idéia.

Sim, eu tô fazendo nessa mesma ideia.
O problema é que é estranho assim:

menu.php[code]


Site
<?php require "config.php"; ?>

	<link rel="stylesheet" href="css/menu.css" />
</head>
<body>

…[/code]
funcionarios.php[code]

<?php include "menu.php" ?>

… CONTEÚDO …[/code]

funcionarios/joao.php[code]

<?php include "menu.php" ?>

… CONTEÚDO DO JOÃO …[/code]

E, na página do joão, não reconhece o menu.php..
Se, na joao.php, eu alterar o path do menu para:<?php include "../menu.php" ?>ele reconhece o menu, mas o CSS não renderiza.
Se, na menu.php, eu alterar o path do CSS para:<link rel="stylesheet" href="../css/menu.css" /> lá na joao.php fica certo, mas na própria menu.php começam os erros!

Entende o que tá acontecendo? rs

Eu entendo, mas faz da forma que te falei do config.php e diga se o erro continua.