Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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 :/
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.
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>>
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
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!
>
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....
token? desculpa mas como faço isso? tem algum exemplo ou link onde possa estudar isso?
>
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']...Toda requisição AJAX feita via jQuery envia um header customizado chamado X_HTTP_REQUESTED_WITH
<?php
$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.
hmm, obrigado a todos pelas respostas!
>
Toda requisição AJAX feita via jQuery envia um header customizado chamado X_HTTP_REQUESTED_WITH
<?php
$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...
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.
sua duvida nao esta clara...