Jump to content


Photo

Include


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

#1 cassiano designer

cassiano designer

    Normal

  • Usuários
  • 108 posts
  • Sexo:Masculino
  • Localidade:São Mateus - ES

Posted 04/10/2007, 10:35

Porque que o include não funciona quando indico uma página que está dentro de outro diretório?

EX:
include "cursos/cursos.php";

se eu colocar o arquivo cursos.php dentro do diretório da página onde estou usando o include, funciona...
include "cursos.php";

Só que, se eu colocar todas os arquivos num diretório só, vai ficar muito embolado, tem como resolver isso?

no aguardo...
##### "O seu maior desafio é se aprimorar para ser... você mesmo!" #####
CASSIANODESIGNER.COM - Desenvolvimento Web

#2 savior

savior

    Campanha [codebox], use ou morra :D

  • Usuários
  • 1229 posts
  • Sexo:Masculino
  • Localidade:Curitiba, PR - Brasil
  • Interesses:Na vida ;P

Posted 04/10/2007, 10:52

O que realmente não funciona?

Dá erro dizendo que o arquivo não existe?
A execução do arquivo incluido não funciona?

Tente explicar melhor seu erro amigo.

[]'s

[lastfm] [blog]

Campanha codebox: use-a ou morra!
bfmaster_duran[at]yahoo.com.br


#3 cassiano designer

cassiano designer

    Normal

  • Usuários
  • 108 posts
  • Sexo:Masculino
  • Localidade:São Mateus - ES

Posted 04/10/2007, 11:03

a estrutura ta assim:
- administracao
----- cursos
---------- cursos.php
----- admin.php
----- conexao.php

-------------------------------------

admin.php (simplificado)
<a href='admin.php?pg=cursos'>Cursos</a>

<?php
if (isset ($_GET["pg"])) {
	switch ($_GET["pg"]) {
				
	case "cursos":
	include "cursos/cursos.php";
	break;
				
	}
}

nao funciona...

erro:

Warning: include(../conexao.php) [function.include]: failed to open stream: No such file or directory in C:\Arquivos de programas\Apache Group\Apache\htdocs\administracao\cursos\cursos.php on line 2

Warning: include() [function.include]: Failed opening '../conexao.php' for inclusion (include_path='.;C:\php5\pear') in C:\Arquivos de programas\Apache Group\Apache\htdocs\administracao\cursos\cursos.php on line 2

Warning: mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\Arquivos de programas\Apache Group\Apache\htdocs\administracao\cursos\cursos.php on line 5

Warning: mysql_query() [function.mysql-query]: A link to the server could not be established in C:\Arquivos de programas\Apache Group\Apache\htdocs\administracao\cursos\cursos.php on line 5

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\Arquivos de programas\Apache Group\Apache\htdocs\administracao\cursos\cursos.php on line 6


Foi como disse aí no inicio, o include só funciona, se o arquivo estiver no msm diretorio, no caso, no mesmo diretório do admin.php
##### "O seu maior desafio é se aprimorar para ser... você mesmo!" #####
CASSIANODESIGNER.COM - Desenvolvimento Web

#4 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 04/10/2007, 13:19

Você tem que aprender ler os erros...

include(../conexao.php) ...

esse é o erro que está acontecendo

defina o local correto deste arquivo e tudo funcionará "perfeitamente" :assobio:

(y) Até mais

#5 cassiano designer

cassiano designer

    Normal

  • Usuários
  • 108 posts
  • Sexo:Masculino
  • Localidade:São Mateus - ES

Posted 05/10/2007, 11:00

Você tem que aprender ler os erros...

include(../conexao.php) ...

esse é o erro que está acontecendo

defina o local correto deste arquivo e tudo funcionará "perfeitamente"


olha bem...

a estrutura ta assim:
- administracao
----- cursos
---------- cursos.php
----- admin.php
----- conexao.php

o cursos.php é que chama o conexao.php
include "../conexao.php";

tem certeza que tá errado?

Ah, outra coisa, esse problema está acontecendo localmente, será por isso? (ainda não testei no servidor...)

Edição feita por: cassiano designer, 05/10/2007, 10:59.

##### "O seu maior desafio é se aprimorar para ser... você mesmo!" #####
CASSIANODESIGNER.COM - Desenvolvimento Web

#6 Kadu DG

Kadu DG

    I Love my Little Girl! http://www.kdsg.net

  • Usuários
  • 597 posts
  • Sexo:Masculino
  • Localidade:Carapicuiba, SP

Posted 05/10/2007, 11:18

Eu acho que o CRAB quis dizer que vc tem que olhar primeiro o arquivo conexao.php, pelo pelo o que parece ele está em outro diretório, e como ele não é encontrado o sisteminha não funciona!
Posted Image

#7 lwirkk

lwirkk

    Veterano

  • Usuários
  • 1314 posts
  • Sexo:Não informado

Posted 05/10/2007, 12:29

Não seria:

include "/conexao.php";

somente?
Posted Image
"Se quiser ser feliz por um dia, vingue-se; se quiser ser feliz por uma vida inteira, perdoe."

Muito Obrigado à todos do fórum, e à toda equipe do fórum! =)

#8 rafaelsarti

rafaelsarti

    Novato no fórum

  • Usuários
  • 9 posts
  • Sexo:Não informado

Posted 05/10/2007, 13:05

Amigo,

-- Administracao
---- Includes

Se você ter um arquivo dentro da pasta administracao e quer pegar algo dentro da include

include ("includes/pagina.php") ;

Se você quer voltar a uma pasta atras como se fosse da include pegar um arquivo dentro da administracao

include ("../pagina.php") ;

Não à problemas com isso não !!!
Espero ter ajudado :D

#9 Crab

Crab

    Da paz, mas preparado para Guerra

  • Ex-Admins
  • 2521 posts
  • Sexo:Masculino
  • Localidade:Florianópolis - SC
  • Interesses:Desenvolvimento Gráfico e Web.

Posted 05/10/2007, 15:06

Você tem que aprender ler os erros...

include(../conexao.php) ...

esse é o erro que está acontecendo

defina o local correto deste arquivo e tudo funcionará "perfeitamente"


olha bem...

a estrutura ta assim:
- administracao
----- cursos
---------- cursos.php
----- admin.php
----- conexao.php

o cursos.php é que chama o conexao.php
include "../conexao.php";

tem certeza que tá errado?


Tenho certeza sim que está errado e mais... o próprio PHP fica do meu lado e tbm te fala a mesma coisa... está errado.

Pense da seguinte forma... (logicamente)

... se vc está 'includando' o arquivo cursos.php no arquivo admin.php que está em um diretório anterior... todo o código do cursos.php 'pertence' ao admin.php agora... portanto vc está obviamente chamando o arquivo conexao.php a partir do arquivo admin.php e não mais do cursos.php... pois todo o código deste cursos.php responde 'dentro' ( includado) no admin.php e este admin.php está n mesmo nível de diretório que o conexao.php... sendo assim se vc chamar ../conexao.php vc não estaria chamando o conexao.php que está dentro da pasta adminitracao/ e sim o conexao.php que está em um diretório antes do adminitracao/ e obviamente esse arquivo não está lá, por isso o erro de arquivo não encontrado.


Na verdade o mais indicado para chamar o arquivo de cnexão é diretamente n arquivo que irá chamar os includes no switch()
Coloque o include do cnexao.php no topo do arquivo admin.php (y)

Preste mais atenção e leia mais sobre include()...

Espero que tenha entendido que o certo é include "conexao.php"; e não include "../conexao.php"; neste teu caso.

(y)Até mais

#10 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 05/10/2007, 15:22

@ CRAB
Apoiado. Comigo e com o PHP são 2 x 1 pro crab :D

Falopa!

#11 cassiano designer

cassiano designer

    Normal

  • Usuários
  • 108 posts
  • Sexo:Masculino
  • Localidade:São Mateus - ES

Posted 05/10/2007, 19:57

...
... se vc está 'includando' o arquivo cursos.php no arquivo admin.php que está em um diretório anterior... todo o código do cursos.php 'pertence' ao admin.php agora... portanto vc está obviamente chamando o arquivo conexao.php a partir do arquivo admin.php e não mais do cursos.php... pois todo o código deste cursos.php responde 'dentro' ( includado) no admin.php e este admin.php está n mesmo nível de diretório que o conexao.php... sendo assim se vc chamar ../conexao.php vc não estaria chamando o conexao.php que está dentro da pasta adminitracao/ e sim o conexao.php que está em um diretório antes do adminitracao/ e obviamente esse arquivo não está lá, por isso o erro de arquivo não encontrado.
...


Realmente, não pensei dessa forma...

Preste mais atenção e leia mais sobre include()...


Procurei :D
Antes de ler esse seu ultimo post Crab, e achei a seguinte solução:
include "./conexao.php";
e funcionou..

mas depois de ler e principalmente entender o que vc quiz dizer, vi que realmente tava errado, somente com include "conexao.php" funcionou...

Espero que tenha entendido que o certo é include "conexao.php"; e não include "../conexao.php"; neste teu caso.


Perfeitamente! (y)

Vlw msm pela ajuda, e pela explicação!

brigado pela atenção de todos!

abraços...
##### "O seu maior desafio é se aprimorar para ser... você mesmo!" #####
CASSIANODESIGNER.COM - Desenvolvimento Web

#12 hostdesigner

hostdesigner

    Super Veterano

  • Usuários
  • 2910 posts
  • Sexo:Masculino
  • Localidade:Quirinópolis-GO
  • Interesses:Programação, Mulheres, Diversão, Mulheres, Música, Mulheres, Meu Carro, Mais mulheres, Internet, Outras Mulheres, Quase por último PAZ e por ultimo Outras Váááárias Mulheres...

Posted 05/10/2007, 20:13

@ CASSIANO DESIGNER
Se bem que o negócio dos
../
e
./
Não tem nada haver com PHP ou com o include, isso já era válido no HTML afinal estamos falando de diretórios.

Falopa!




1 user(s) are reading this topic

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

IPB Skin By Virteq