Pergunta

Hai.Eu tenho o site que é realmente estranho, e agora está a fazer-me problemas.Esta é a estrutura simplificada

public_html
- adm
--- raport
------ raportpdf.php
--- class
------ Bonus
--------- Bonus_DAO.class.php 
------ config.php
--- raport.php
- index.php

Então.Index.php é gigante carregador.Ele tem linhas:(mas eu não acho que eles estão fazendo diffrence)

set_include_path('lib/DB' . PATH_SEPARATOR . get_include_path());
set_include_path('lib/PHPLOT' . PATH_SEPARATOR . get_include_path());
set_include_path('config' . PATH_SEPARATOR . get_include_path());
set_include_path('view' . PATH_SEPARATOR . get_include_path());
set_include_path('controller' . PATH_SEPARATOR . get_include_path());
set_include_path('model' . PATH_SEPARATOR . get_include_path());

Dentro Bonus_DAO.class.php é algo como

require_once('./adm/class/config.php');

Raportpdf.php é chamado através de index.php - ele envia seu conteúdo, sem qualquer erro no e-mail.Mas quando eu quero de acesso raport.php, eu tenho de erro como:

Warning: require_once(./adm/class/config.php) [function.require-once]: failed to open stream: No such file or directory in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php  on line 2

Fatal error: require_once() [function.require]: Failed opening required './adm/class/config.php' (include_path='.:/usr/local/lib/php') in /home/panele/domains/blahblah/public_html/adm/class/Bonus/Bonus_DAO.class.php on line 2

Como posso resolver isso?

Foi útil?

Solução

Inserir uma linha como a seguinte em um arquivo que é incluído nesta estrutura de seu (este ficheiro incluído DEVE ser localizado no diretório raiz, algo como um config.php ou que eu normalmente uso init.php).

define("ROOT_DIR",dirname(__FILE__));

Então, onde você estiver recebendo erros (ou para a sinonímia dentro do seu código para que o assunto, em qualquer lugar que desejar()/include()), adicionar ROOT_DIR."/caminho/para/arquivo" antes.O que isso está fazendo está dando o caminho absoluto para o diretório raiz e, em seguida, você simplesmente especifique o diretório dentro da raiz que você está procurando.Para fins de exemplo, o meu diretório raiz "/home2/exemplo." Agora, eu inserir esta linha em um arquivo que eu ter incluído, etc.e alterar a exigir linha:

require_once(ROOT_DIR."/adm/class/config.php");

A linha acima, basicamente, traduz-se a este (supondo que eu usei a define();a declaração dentro de um arquivo localizado em /home2/exemplo)

require_once("/home2/example/adm/class/config.php");

Então, basicamente, esta é uma maneira fácil de dar estático caminhos de um elemento dinâmico, então você não vai ter esse problema de novo!

Boa sorte!
Dennis M.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top