Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

require_once de arquivo em outra pasta

Tenho um arquivo "banco-filantropia.php" na pasta "tarefa_filantropica" e tenho q dar require_once para o arquivo "conecta.php" na pasta "painelmo", os arquivos estão organizados da segunte forma:

painelmo/tarefa_filantropica/banco-filantropia.php
painelmo/conecta.php
require_once("../conecta.php");

Que funcionou para outro arquivo que está oreganizado de forma semelhante:

painelmo/login/banco-usuario.php
painelmo/conecta.php

O mesmo require_once foi usado neste caso e td está funcionando perfeitamente, mas quando fui usar ele dnv deu problema. Não só isso, também tentei redirecionar um arquivo dentro de tarefa_filantropica para outro arquivo dentro da mesma pasta e o navegador aponta q o caminho é inválido.

Gostaria entender o problema e saber como eu posso resolver o mesmo.

6 respostas
solução!

Tentou utilizar isso?

require_once(__DIR__.'/../conecta.php');

Agora para te explicar é meio complexo. Deve ser por que desta maneira, invocando DIR o PHP irá retornar o patch desde o inicio da cadeira do arquivo atual e então retornar uma pasta. Ou seja, não estará utilizando o patch relativo (../conecta.php) e sim o patch completo, evitando o erro de arquivo não existente. Acho que é comum o require_once e include darem problemas com patchs relativos, então sempre use isso.

No caso do arquivo conecta.php funcionou perfeitamente, mas para a "action" do formulario q se encontra na mesma pasta q ele ainda está ocorrendo erro de objeto não encontrado (404)

<form action="<?=__DIR__."/adiciona-item-filantropia.php"?>" method="post">

Sendos que ambos estão na mesma pasta:

painelmo/tarefa-filantropica/form-filantropia.php
painelmo/tarefa-filantropica/adiciona-item-filantropia.php

Mas por que você utiliza PHP para a action? Sendo que pode ser puro HTML? Ai sim você usa o patch relativo.

Tente e posta aqui qualquer coisa.

<form action="adiciona-item-filantropia.php" method="post">

Eu estava usando assim, o erro aparece do mesmo jeito

Tenta assim então:

<form action="./adiciona-item-filantropia.php" method="post">

Eu coloquei:

<form action="filantropia/adiciona-item-filantropia.php" method="post">

E está funcionando, muito obrigado pela ajuda

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software