Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 18:50

Olá pessoal.. preciso de uma ajuda pra resolver esse probleminha.

Tenho uma página principal onde o conteúdo é aberto num iframe chamado "framecentro" e quando um site de busca encontra algum conteúdo do meu site ele leva somente para a página que deveria abrir dentro do iframe na página principal.

Preciso de uma solução como nesse tutorial mas para iframes:
http://www.adrianoweb.com.br/prospero/m ... de-frames/

Não sei muito de php e da maneira que fiz não deu certo... alguém poderia quebrar esse galho pra mim?

fiz assim:
index.php (pág principal)
<html><head> <?Php if(!isset($_GET['link'])) $link="home.php"; else $link=$_GET['link']; ?> </head> <body> <iframe name="framecentro" src="<?=$link?>" height="650" width="100%" frameborder="0" scrolling="no"></iframe> </body> </html>

master_iframe.js
if(!(parent.framecentro)) parent.window.location="index.php?link="+escape(window.location);

home.php (conteúdo inicial)
<html> <head> <script language="javascript" src="master_iframe.js"></script> </head> <body> Conteúdo </body> </html>

outros.php (outro conteúdo)
<html> <head> <script language="javascript" src="master_iframe.js"></script> </head> <body> Conteúdo 2 </body> </html>

De forma que se tentasse abrir somente a pág de um iframe ele forçasse a abrir da maneira correta (pelo iframe com a pág principal).

Mas com esse meu código ao tentar carregar qualquer pág de um iframe sozinha ele redireciona de maneira errada.
O link fica assim se redirecionado da home.php por exemplo:
http://10.1.1.4/index.php?link=http%3A/ ... 4/home.php

mas não sei como :?

grato
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 18:57

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 19:33

Não tinha visto mas essa não seria a solução mais adequada para o meu problema tendo em vista que o iframe é usado para várias pág. diferentes.

Com o código desse tópico se alguém achasse algum conteúdo pelo google por ex. de uma das milhares de pág. do iframe, ele simplesmente iria redirecionar para pág. principal com a pág do iframe padrão e não a achada pelo google.

Meu problema é se alguém procurar por algo em buscadores como o google e achar no meu site, o site de procura ira gerar um link direto para a pág do meu iframe o que é um problema.

grato pela ajuda amigo
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 19:46

Não entendi muito bem ainda. No caso para que o escape no seu script? Isso gera o %3A...

Não entendi a relação do GET com o URL, se possível explica melhor.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 20:09

É como eu disse, eu não entendo muito bem php e eu quero como no tutorial que citei no primeiro post.

Para que a página ao ser acessada sozinha seja aberta da maneira correta, pelo iframe.
0
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 20:22

aff.. achei o erro (idiota) e eu nem tinha percebido...

No tutorial tava errado por isso que eu nem percebi:
em index.php (pág principal) tem que ficar assim:
<html><head> <?Php if(!isset($_GET['link'])) $link="home.php"; else $link=$_GET['link']; ?> </head> <body> <iframe name="framecentro" src="<?php echo "$link" ?>" height="650" width="100%" frameborder="0" scrolling="no"></iframe> </body> </html>

agora sim... ele abre da maneira correta idependente de qual das páginas do iframe que for tentar abrir ela sozinha.

ufa!

mas valeu por tentar ajudar. obrigado
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 20:26

Eu já estava montando um mini-tutorial explicando o funcionamento, vou deixar aqui a parte que tinha feito, da identifcação, se o documento está sendo aberto dentro ou fora do iframe.

<script> if(location.href!=parent.location) { alert("tá dentro do iframe") } else { alert("tá fora do iframe") } </script>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 21:07

EDITADO: Pode clicar em responder direto quando os tópicos relacionados estiverem pertos.

sim eu entendi o seu código! Mas imagina se tiver documento2.html, documento3.html, documento4.html, documento5.html, e por ai vai... e um usuário acha a página documento4.html pelo google usa o link para chegar até a pág., o seu redirecionador o levará até a pág. principal (documento1.html) que mostrará no iframe a pág. documento2.html que é a pág. padrão do iframe e não a que o usuário viu no google. entendeu?

Como eu faria pra o usuário visualizar a mesma pág. que ele viu no google pelo iframe?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 21:38

Então, isso eu ia explicar, mas, como falou que tinha resolvido eu não continuei

O script abaixo vai em todos os documentos a serem abertos dentro do iframe, ai, no lugar do alert que está "fora do iframe", vai ter um redirecionamento para um arquivo PHP, fazendo praticamente o mesmo esquema explicado naquele tutorial que indicou.

location.href="pagina.php?url="+location.href;

a página php recebe o endereço da página que foi aberta fora do iframe pelo <?php echo $_GET['url']; ?>

Ai, joga essa página para dentro do iframe localizado em pagina.php

CONTEÚDO DE PÁGINA.PHP

<?php
if($_GET['url']!="") {
echo "<iframe src='".$_GET['url']."'></iframe>";
} else {
echo "<iframe src='estapagina.php'></iframe>";
}
?>
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 21:54

obs: Eu coloco as páginas que serão abertas pelo iframe dentro de um diretório pra organização.

Certo, mas quando eu abro a pág. sozinha ela o redireciona para esse endereço:
http://10.1.1.4/pages/index.php?url=htt ... es/map.php (The requested URL /pages/index.php was not found on this server.)
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 22:04

http://10.1.1.4/pages/index.php?url=htt ... es/map.php

Pelo que ví, o usuário ao acessar o documento é redirecionado para sua index.php, que pega o url de onde veio

tem o documento index.php nessa pasta pages/ o que tem nela?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 22:09

São as páginas que serão abertas pelo iframe:
map.php
home.php
encarregados.php

e index.php é a pág. principal (iframes) que está um diretório acima.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 22:18

Analisa o seguinte, você está testando o script aparentemente em localhost, então tem:

http://localhost/index.php

Os arquivos do iframe estão nos diretórios

files/doc1.html
files/doc2.html

Se a pessoa entrar direto em files/doc1.txt vai redirecionar para

http://localhost/index.php?url=http://localhost/files/doc1.html

No caso, index.php tem um iframe que vai tentar abrir o http://localhost/files/doc1.html ou seja, o caminho completo

Ou seja, veja o url que você está colocando para redirecionar o usuário, o que deixei em negrito acima.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 22:25

esse é o js que está incuido em cada página que será aberta no iframe:
window.onload = function url() { if(location.href!=parent.location) { } else { location.href="index.php?url="+location.href; } }

Não entendi, o que está errado?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

02-11-2008 22:33

Qual erro retorna?

Tenta
window.onload = function() {
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 11:50

esse é o erro, ele é redirecionado para:
http://10.1.1.4/pages/index.php?url=htt ... es/map.php
Not Found
The requested URL /pages/index.php was not found on this server.
window.onload = function() {
Da na mesma.

Acho que deveria ser assim:
http://10.1.1.4/index.php?url=pages/map.php

Mas não sei como fazer.

O site que estou fazendo está em: http://samp.redirectme.net
Você vai ver que uso um iframe central para o conteúdo das páginas. Não quero que quando acharem algo pelo google, os usuários entrem somente nas páginas do iframe descartando o resto como menus e o corpo do site.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 13:05

Ao invés de passar o URL completo do documento, tenta passar somente a parte necessário, com o seguinte

location.href.split("http://www.seusite.com/")[1]

Ou seja, ao invés de mandar o location.href manda a linha acima

Ela vai pegar o url, tirar o domínio e mandar somente o que vem após ele.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 13:20

Certo... agora funcionou. ficou assim:
window.onload = function() { if(location.href!=parent.location) { } else { location.href="../index.php?url="+location.href.split("http://10.1.1.4/")[1]; } }

O endereço gerado por esse código fica assim:
http://10.1.1.4/index.php?url=pages/map.php (como eu queria)

Mas ainda tem um problema, esse endereço altera os links do menu fazendo o mesmo abrir no iframe o site inteiro em vez da página sozinha.
Por exemplo o link que deveria ser:
http://10.1.1.4/pages/home.php
ficou assim:
http://10.1.1.4/index.php?url=pages/pages/home.php
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 14:20

Isso é por causa do valor que vem por GET do url?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 16:30

é

os links deveriam ser assim:

http:// 10.1.1.4/index.php?url=pages/home.php
http:// 10.1.1.4/index.php?url=pages/map.php
http:// 10.1.1.4/index.php?url=pages/encarregados.php

o que está em vermelho é o endereço do link

e depois de redirecionado acaba ficando assim:

http:// 10.1.1.4/index.php?url=pages/pages/home.php
http:// 10.1.1.4/index.php?url=pages/pages/map.php
http:// 10.1.1.4/index.php?url=pages/pages/encarregados.php

não tenho ideia de como evitar isso
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 16:38

Porque não usa o split para quebrar até a pasta pages? Assim vai vir só o documento.

location.href="../index.php?url="+location.href.split("http://10.1.1.4/pages/")[1];
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 17:00

porque será redirecionado para:
http://10.1.1.4/index.php?url=map.php
e não vai achar a página que ta dentro do diretório /pages
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 17:09

Então não entendi :shock

Se o cara abre o documento que devie estar dentro do iframe, deveria ser algo como:

http:// 10.1.1.4/pages/home.php

Ai, o script pega o endereço e tira http:// 10.1.1.4/ restando pages/home.php

Ai você diz que fica 2 pages, ai eu falo para tirar um pages/ e sai os 2, complicado :o
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 75 postagens
Mais de 75 postagens
Tópico Autor
Mensagens: 76
Sexo: Masculino
Localização: Porto Alegre
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 18:15

olha no meu domínio:
http://samp.redirectme.net (se você olhar talvez consiga entender)

ao entrar na página principal se ser de redirecionamento o menu funciona normalmente para o iframe, mas se redirecionado de uma pág. ao tentar acessar por exemplo só a:
http://samp.redirectme.net/pages/map.php
será redirecionado para:
http://samp.redirectme.net/index.php?url=pages/map.php
e o menu começa a abrir os links no iframe assim:
http://samp.redirectme.net/index.php?url=pages/pages/home.php
fazendo com que abra a página principal toda dentro do iframe.

parece que o redirecionamento faz o navegador pensar que a raíz do site é a parte em azul.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17612
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Como garantir que uma pág. abra dentro de um iframe?

03-11-2008 18:30

Acho que o lance é entender aonde está sendo criada essa segunda pasta pages no link, se no PHP ou no JavaScript

Você tem que ver ai se já não tem uma pasta pages/ pelo seu script em PHP, porque deve ter já e só adiciona mais uma do url que vem pelo GET.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado