Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

gtr.

quero apenas como include

Recommended Posts

galera, é o seguinte, tenho um link:

 

<a href="#" onClick="abrirPag('pagina.php');">Link</a>

 

que quando clico nele, é carregado pagina.php em uma div...

 

 

Queria saber se tem como quando um usuário acessar diretamente a pagina "pagina.php" ele redirecionar para index do site.

 

Obrigado.

 

---------

 

Ah! pode ser um script em qualquer linguagem... eu estou pesquisando aqui, mas até agora nao encontrei nada desse tipo :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

ok,

 

minha index:

 

	<div id="menu">

	<ul>
		<li><a href="#">Link</a></li>
           <li><span class="link" onClick="abrirPag('contato.php');">Contato</span></li>
	</ul>

</div>

   <div id="conteudo_mostrar">

	Quando clica em contato, o contato.php é carregado aqui com ajax...

   </div>

 

 

contato.php

 

<p>Texto que será carregado</p>

 

 

Porém eu quero que o contato.php só seja carregado pela index, e quando for acessada diretamente (o usuario digitando www.site.com/contato.php) redirecione para a index novamente.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

function abrirPag(element,pag)
{
$.ajax({
type:'get',
url:pag,
success:function(data)
{
$(element).html(data);
},
beforeSend:function(){
$(element).html("<img src='loadgin.gif'>");
}
})

 

isso usando jquery...

 

na hora de usar

<a href="#" onClick="javascript:abrirPag('#divcentral','conteudo.php');" >conteudo</a>
<div id="divcentral"></div>

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Porém eu quero que o contato.php só seja carregado pela index, e quando for acessada diretamente (o usuario digitando www.site.com/contato.php) redirecione para a index novamente.

 

 

salvo engano, não tem como. não por ajax, pois o ajax acessa a página como se fosse o endereço digitado no navegador.

 

ou seja, se você criar um script no php que impeça o acesso direto ao arquivo, você tambem vai impedir o ajax de acessa-lo

Compartilhar este post


Link para o post
Compartilhar em outros sites

poxa, era o que eu suspeitava... já tinha tentado com php e tudo apontava isso, ou libera geral, ou bloqueia no ajax também :(

 

de qualquer jeito obrigado a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

salvo engano, não tem como. não por ajax, pois o ajax acessa a página como se fosse o endereço digitado no navegador.

 

ou seja, se você criar um script no php que impeça o acesso direto ao arquivo, você tambem vai impedir o ajax de acessa-lo

 

nao se enviar um token, e verificar o token na pagina acessada....

Compartilhar este post


Link para o post
Compartilhar em outros sites

token? desculpa mas como faço isso? tem algum exemplo ou link onde possa estudar isso?

token normalmente eh uma chave unica de autenticacao...

 

ao exemplo q eu dei poderia ser isto

 

function abrirPag(element,pag)
{
$.ajax({
type:'get',
url:pag,
data:{token:'chavealgumaocoisa'}
success:function(data)
{
$(element).html(data);
},
beforeSend:function(){
$(element).html("<img src='loadgin.gif'>");
}
})

 

e no php verificar o token com $_GET['token']...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toda requisição AJAX feita via jQuery envia um header customizado chamado X_HTTP_REQUESTED_WITH

 

<?php

# só pras linhas não ficarem tão longas
$alias   = 'X_HTTP_REQUESTED_WITH';
$xmlhttp = 'XMLHttpRequest';
if (!isset($_SERVER[$alias]) or $_SERVER[$alias] !== $xmlhttp) {
   // O que fazer se a requisição não for AJAX
}

// O que fazer se a requisição FOR feita via AJAX.

 

Obviamente que a requisição pode ser forjada, mas sai fora do âmbito de usuários comuns.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Toda requisição AJAX feita via jQuery envia um header customizado chamado X_HTTP_REQUESTED_WITH

 

<?php

# só pras linhas não ficarem tão longas
$alias   = 'X_HTTP_REQUESTED_WITH';
$xmlhttp = 'XMLHttpRequest';
if (!isset($_SERVER[$alias]) or $_SERVER[$alias] !== $xmlhttp) {
   // O que fazer se a requisição não for AJAX
}

// O que fazer se a requisição FOR feita via AJAX.

 

Obviamente que a requisição pode ser forjada, mas sai fora do âmbito de usuários comuns.

 

mas nem sempre o apache tem este tipo de variavel de ambiente, tem um artigo aki no portal q explica isto...

Compartilhar este post


Link para o post
Compartilhar em outros sites
mas nem sempre o apache tem este tipo de variavel de ambiente, tem um artigo aki no portal q explica isto...

São apenas cabeçalhos de requisição, não tem como o 'apache não ter esse tipo de variável de ambiente'.

Os frameworks ajax mais populares já adicionam esse cabeçalho automaticamente para não correr o risco de o navegador não enviá-lo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.