• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

karva

Como "forçar" a fazer include?

14 mensagens neste tópico

Boas pessoal.

Tenho aqui uma duvida.

E assim, se eu quero que um ficheiro seja apenas acessível pelo php, ponho-o numa pasta apenas acessível pelo servidor,

e depois faco o include, e pronto.

O que eu quero saber e se existe alguma maneira de fazer isso, mas com o ficheiro q vai ser incluido, numa pasta acessível, mas que o ficheiro

só corra se se fizer include, haverá alguma funcao pra isso?

Espero que me tenha feito entender.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não percebei muito bem mas acho que podes utilizar a função get_included_files(); para o que queres fazer.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que pretendes, é que se eu aceder directamente ao ficheiro .php pela barra de endereço não conseguir abri-lo? Conseguindo apenas se estiver a ser chamado pelo include? Certamente haverá mais que uma solução. A minha opinião, sessões.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@karva

Também Podes utilizar a função  define(); e defined();

EDIT:

@karva tenta explicar melhor... Quase ninguem percebeu...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Deixa ver se eu percebi.

Tens uma pasta que queres que seja possivel aceder mas n queres que acedam aos ficheiros .php que estão contidos nela.

É isso?

Acho que não é possivel. Já estive a tentar e mesmo mexendo nas Permissões do ficheiro PHP é possivel ler directamente atraves do link.

Acho que a melhor solução é como diz o flabron.

Pões uma condição no inicio do ficheiro .php a verificar a session e so atraves de outro php é possivel aceder a esse.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então é só utilizar define(); e defined(); ;)

Fazes o seguinte:

Nos ficheiros que queres que sejam acessiveis apenas por include colocas no principo de cada ficheiro  o seguinte

exemplo:  abc.php

<?php
defined('incluido') OR die( 'Não é possivel aceder a este ficheiro' );
.... //o resto do código do ficheiro aqui
?>

E no ficheiro onde estao os includes colocas isto no principio (antes dos includes)

exemplo:  include.php

<?php
define('incluido',1);

include( 'abc.php' );
...
?> 

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então é só utilizar define(); e defined(); :P

Fazes o seguinte:

Nos ficheiros que queres que sejam acessiveis apenas por include colocas no principo de cada ficheiro  o seguinte

exemplo:  abc.php

<?php
defined('incluido') OR die( 'Não é possivel aceder a este ficheiro' );
.... //o resto do código do ficheiro aqui
?>

E no ficheiro onde estao os includes colocas isto no principio (antes dos includes)

exemplo:  include.php

<?php
define('incluido',1);

include( 'abc.php' );
...
?> 

Não conhecia esta forma, mais uma coisinha para o meu vocabulário, thks kingless.
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O kingless já postou um bom exemplo, mas como nestas coisas mais nunca é demais,

outra opção seria utilizando o ficheiro .htaccess

ou seja,

dentro da pasta onde tens os ficheiros metes um .htaccess com o seguinte:

<Files "*.php"> 
order deny,allow 
deny from all
</Files>

Assim já ninguem tem acesso aos ficheiros php contidos nessa pasta, mas quando fizeres o include eles são incluidos.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya, mas vou usar a funcao do kingless, la em cima disse que nao queria usar .htaccess

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ya, mas vou usar a funcao do kingless, la em cima disse que nao queria usar .htaccess

Pois foi.. não tinha reparado.  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Imaginemos então que não quero que me acedam a pasta imagens mas no entanto quero que o site me apresente as mesmas, como faço?

É que desta maneira ele bloqueou-me as imagens, pretendia isto mais para evitar os cuscos que andam a ver as directorias do site.

Thanks

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mais uma vez iria sugerir-te o htaccess:

Options -Indexes

Ou então metes um index.php nessas pastas e...

<?php
Header("Location: http://teste.com");
?>

0

Partilhar esta mensagem


Link 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