Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

acao

[Resolvido] include_once erro em directorio

Mensagens Recomendadas

acao

boas

tenho um erro de include referente ao directorio ao incluir uma classe, erro que não consigo desvendar.

tenho os seguintes directorios:

raiz --> Classes -->Classesglobais -->ficheiroConexao.php

( )---> ( ) -->Classreg -------->ficheiroDao.php (ficheiroDao.php tem include_once a chamar ficheiroConexao.php)

e o ficheiroregisto.php (está na raiz)

situação 1- ficheiroDao.php chamar ficheiroConexao.php.

Include_once '../Classesglobais/ficheiroConexao.php'

situação 2 - ficheiroRegisto.php chama ficheiroDao.php.

include_once 'Classes/Classesreg/ficheiroDao.php'

as 2 situações estao correctas ?

acontece que se eliminar o include da 2 situação não tenho erro.

e se colocar o ficheiroConexao na classreg funciona tudo correcto. depois de ajustar o include do ficheiro.

alguma dica agradeço

edit: tenhos os seguintes erros.

Warning: include_once(../ClassGlobls/ClassConexaoAv.php): failed to open stream: No such file or directory in C:\xampp\htdocs\

Warning: include_once(): Failed opening '../ClassGlobls/ClassConexaoAv.php' for inclusion (include_path='.;C:\xampp\php\PEAR') in C:\xampp\htdocs

Fatal error: Class 'ConexaoAv' not found in C:\xampp\htdocs\

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

no que toca ao serparador de directório, sinceramente não me lembro porque não uso o windows para essas coisas ... mas ...

Warning: include_once(../ClassGlobls/ClassConexaoAv.php): failed to open stream: No such file or directory in [b]C:\xampp\htdocs\[/b]

como podes ver, o include é relativo ao script chamado e não ao local onde é chamado.

faz as "contas" e verifica onde o include está a procurar o ficheiro:

C:\xampp\htdocs\../ClassGlobls/ClassConexaoAv.php


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

Duas variáveis que uso em qualquer projecto que faça :

define('DS', DIRECTORY_SEPARATOR);
define('DR', realpath(dirname(__FILE__)).DS);

@yoda obrigado pela resposta, não conheço logo que possa vou pesquisar.

no que toca ao serparador de directório, sinceramente não me lembro porque não uso o windows para essas coisas ... mas ...

Warning: include_once(../ClassGlobls/ClassConexaoAv.php): failed to open stream: No such file or directory in [b]C:\xampp\htdocs\[/b]

como podes ver, o include é relativo ao script chamado e não ao local onde é chamado.

faz as "contas" e verifica onde o include está a procurar o ficheiro:

C:\xampp\htdocs\../ClassGlobls/ClassConexaoAv.php

@HappyHippyHippo obrigado mais uma vez pela resposta.

eu penso que seja uma chamada à classregistoDao que tenho na pagina registo aonde tenho o formulario e que serve para carregar uma combo, porque se comentar a parte de instanciar a class não dá erro.

questões:

1- pode-se estanciar uma classe numa pagina com «action"pag.php"» ou seja direcionado para uma pagina?

é que eu em registo.php estou a incluir a classregDao, e esta pagina tem o form direcionado para pagina que faz include de

-classconexao.php

-clasReg.php (que esta class chama classregDao e esta chama a classconexao)

alguma sugestão?

eu não queria colocar a classconexao dentro da pasta que tem todos os ficheiros referentes a registo/cadastrar

porque se a colocar aí funciona certinho.

ps: editei o post anterior para se perceber melhor o exemplo de directorios.

os includes estão corectos?

para chamar ficheiro em pasta no mesmo nivel (../nomedapastamesmonivel/ficheiro.php) correto ?

ps: edit: Já deu certo.

coloquei a chamada da classconexão assim : 'NomediretorioNivel1acima/NomediretorioNiveligual/classconexao.php'

ou seja alterei os 2 pontos pelo nome do directorio.

mas as pastas que têm os ficheiros estão no mesmo nivel.

isto é correto ?.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Pivot

Se estão no mesmo nível, pela minha experiência, acho que apenas tens de fazer: include_once("nomedoficheiro.php");

Abraço,

Rafael.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
acao

Se estão no mesmo nível, pela minha experiência, acho que apenas tens de fazer: include_once("nomedoficheiro.php");

Abraço,

Rafael.

estão no mesmo nivel os directorios/pastas.

agora o que acho estranho é: nuns ficheiro chamo assim «../ClassGlobls/ClassConexaoAv.php»

e na classDao tem que ser «nomeDirectorioNivelAcima/ClassGlobls/ClassConexaoAv.php»

e a classDao está na mesma pasta que os outros ficheiros.

e não consigo compreender a razão.

cumps

acao

Editado por acao

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo

http://php.net/manual/en/function.include.php

Files are included based on the file path given or, if none is given, the include_path specified. If the file isn't found in the include_path, include will finally check in the calling script's own directory and the current working directory before failing. The include construct will emit a warning if it cannot find a file; this is different behavior from require, which will emit a fatal error.


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.