mhqmelo 0 Denunciar post Postado Dezembro 16, 2011 Boa tarde a todos, é o seguinte, estou atualizando um site de uma empresa, e em "localhost" ele funciona perfeito, porém quando hospedo ele (no Godaddy) ele aparece esse erro: Warning: include(/includes/header.php) [function.include]: failed to open stream: No such file or directory in /home/content/22/7819322/html/index.php on line 1 Já fiquei mais de 3 horas procurando a solução no google e nada.. Não tem nenhum arquivo php.ini no diretorio q eu possa mexer pq já está "dentro" do godaddy. Tem uma pasta STATS e dentro dela os arquivos: .htaccess Options +Indexes so que eu não tenho permissão pra mudar ele. Alguém poderia me informar o que eu devo fazer? Muito obrigado Detalhe: se eu entro em outra pasta por exemplo: www.meusite.com/contato ou www.meusite.com/empresa, ele funciona! Só não funciona a pagina principal. Compartilhar este post Link para o post Compartilhar em outros sites
Diegus Miestro 21 Denunciar post Postado Dezembro 19, 2011 Cara, passa o código ai do teu Index, embora eu acredite que seja problemas quando aponta ou melhor, os diretórios do Localhost podem não ser o mesmo que hospedado, pelo menos em questão de nível. Compartilhar este post Link para o post Compartilhar em outros sites
FernandoPhP 9 Denunciar post Postado Dezembro 19, 2011 você chama esse arquivo dentro de outro arquivo? por exemplo: index.php include('arquivo1.php'); arquivo1.php include('arquivo2.php'); Se for isso, me diz se o index, arquivo1 e o arquivo2 estão na mesma pasta. Compartilhar este post Link para o post Compartilhar em outros sites
mhqmelo 0 Denunciar post Postado Dezembro 20, 2011 Tenho o index na pasta raiz, os includes ficam todos dentro da pasta includes. no index está assim: <?php include '/includes/header.php'; ?> Os outros includes que são chamados dentro da mesma pasta, eu removo o /includes, por exemplo <?php include 'menu.php'; ?> Mais nesse caso, está dando erro no index, o index que não está "vendo" a pasta includes. O localhost e a hospedagem estão no mesmo nivel, justamente para não ter erros de caminho, estão todos arquivos na pasta raiz do htdocs. Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Dezembro 20, 2011 utilize a função glob para verificar quais são os arquivos que o index está visualizando, ai pode te dar um posicionamento do que acontece. coloque assim na página inicial: <?php var_dump( glob('*') ); ?> ele dará um dump em todos os arquivos/pastas (não sub-pastas) que estão referentes a index.php ai você pode ver a estrutura dos arquivos para ver o caminho correto até o arquivo. Já tive problemas parecidos, mas foi pelo uso de ajax onde a "posição" para a chamada do arquivo muda e assim não encontrava o arquivo. Compartilhar este post Link para o post Compartilhar em outros sites
mhqmelo 0 Denunciar post Postado Dezembro 20, 2011 Gabriel Heming fiz isso, olha o resultado: array(11) { [0]=> string(7) "contato" [1]=> string(3) "css" [2]=> string(6) "cursos" [3]=> string(6) "images" [4]=> string(8) "includes" [5]=> string(9) "index.php" [6]=> string(13) "institucional" [7]=> string(2) "js" [8]=> string(8) "noticias" [9]=> string(8) "servicos" [10]=> string(5) "stats" } Compartilhar este post Link para o post Compartilhar em outros sites
FernandoPhP 9 Denunciar post Postado Dezembro 20, 2011 para esse tipo de problema eu fiz o seguinte, tenta ai pra ver se da certo: Criei um arquivo chamado includes.php nesse arquivo eu coloquei o seguinte código: if(file_exists('header.php')) require_once('header.php'); //ao invés do require_once pode usar include ou include_once elseif(file_exists('includes/header.php')) require_once('includes/header.php'); else require_once('../includes/header.php'); $header = new Header(); na Index substitue o <?php include '/includes/header.php'; ?> por <?php include 'includes.php'; ?> E na index basta você utilizar a variavel $header para instanciar seus métodos. Se você quiser ainda pode repetir o código do includes.php nas linhas debaixo, só alterando o nome do arquivo que é incluído e da variável que recebe a classe. Mas se você não tiver trabalhando com classes, é só tirar o final do includes.php Exemplo: if(file_exists('header.php')) require_once('header.php'); //ao invés do require_once pode usar include ou include_once elseif(file_exists('includes/header.php')) require_once('includes/header.php'); else require_once('../includes/header.php'); Compartilhar este post Link para o post Compartilhar em outros sites
Gabriel Heming 766 Denunciar post Postado Dezembro 20, 2011 Pode ser erro de minha parte, mas tenta remover a / da frente do include, para deixar assim. <?php include 'includes/header.php'; ?> Conforme o dump do glob, existe a pasta include, caso não funcionar faça o dump apenas do diretório include, dentro da index, faça o seguinte: <?php var_dump( glob('includes/*') ); ?> Compartilhar este post Link para o post Compartilhar em outros sites
William Bruno 1501 Denunciar post Postado Dezembro 20, 2011 acho mais seguro usar "sempre" assim: <?php include $_SERVER['DOCUMENT_ROOT'].'includes/header.php'; ?> acabei de ter problemas com path de máquinas aqui... dessa forma, você "garante" q vai buscar sempre desde a raiz. Compartilhar este post Link para o post Compartilhar em outros sites
mhqmelo 0 Denunciar post Postado Dezembro 20, 2011 Era o caminho, ao invés de /includes/header.php eu mudei para includes/header.php tirei o "/". Muito Obrigado a todos que ajudaram! :natalbiggrin: Compartilhar este post Link para o post Compartilhar em outros sites