acao Posted September 9, 2013 at 10:38 PM Report #523944 Posted September 9, 2013 at 10:38 PM (edited) 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 Edited September 10, 2013 at 10:24 PM by acao
yoda Posted September 10, 2013 at 04:26 PM Report #524006 Posted September 10, 2013 at 04:26 PM Duas variáveis que uso em qualquer projecto que faça : define('DS', DIRECTORY_SEPARATOR); define('DR', realpath(dirname(__FILE__)).DS); before you post, what have you tried? - http://filipematias.info sense, purpose, direction
HappyHippyHippo Posted September 10, 2013 at 05:03 PM Report #524013 Posted September 10, 2013 at 05:03 PM 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 Portugol Plus
acao Posted September 10, 2013 at 09:56 PM Author Report #524045 Posted September 10, 2013 at 09:56 PM (edited) 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 Edited September 11, 2013 at 07:48 AM by acao
Pivot Posted September 11, 2013 at 11:05 AM Report #524099 Posted September 11, 2013 at 11:05 AM Se estão no mesmo nível, pela minha experiência, acho que apenas tens de fazer: include_once("nomedoficheiro.php"); Abraço, Rafael.
acao Posted September 11, 2013 at 11:53 AM Author Report #524113 Posted September 11, 2013 at 11:53 AM (edited) 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 Edited September 11, 2013 at 01:06 PM by acao
HappyHippyHippo Posted September 11, 2013 at 01:51 PM Report #524134 Posted September 11, 2013 at 01:51 PM 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 Portugol Plus
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now