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


Moderador: web

 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 15:16

Boa tarde!

Em meu código, "do nada", passou a haver um problema: ao se clicar no botão "Voltar", do código, usando <a href=\"javascript:window.history.go(-1)\"><img src=\"../../img/bvo.gif\" border=\"0\"></a>, ou em se clicando no botão "Voltar" do próprio navegador, surge a seguinte mensagem:

"Documento fora de validade

Este documento não está mais disponível.

O documento solicitado não está mais no cache do Firefox.

Como precaução de segurança, o Firefox não solicita automaticamente documentos contendo informações confidenciais.

Clique em “Tentar de novo” para solicitar mais uma vez o documento do site."

Digitei o assunto no Google e estou pesquisando. Mas alguém saberia me dizer a causa disso e como resolver? Isso não ocorria, e, sem que eu percebesse o motivo, passou a ocorrer.

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

Documento fora de validade

20-09-2014 15:52

As vezes, quando você envia os dados via POST por exemplo, do documento A para o documento B, ao tentar voltar para o documento A pelo navegador ou link não é possível. Isso porque o meio que o script usou para que a pessoa chegasse ao documento não pode ser repetido.

Isso pode acontecer também quando você tem vários redirecionamentos. De A, para B depois para C. Quando você chega no documento C, não pode voltar para o A.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 16:09

Boa tarde! Cara, é isso que está ocorrendo. Estava pesquisando. Os links do menu eu os criei como formulários, conforme parte do código, abaixo:

$ce2 .= "<form method=\"post\" name=\"frm_ce2_bsc\" action=\"bsc.php\" target=\"_self\" style=\"margin: 0px; padding: 0px;\"> <input type=\"submit\" name=\"bsc\" value=\"$mnu\" title=\"$tit_mnu\" class=\"nrm\" onmouseover=\"this.className='ovr'\" onmouseout=\"this.className='nrm'\"> <input type=\"hidden\" name=\"ta1\" value=\"$_POST[ta1]\"> <input type=\"hidden\" name=\"ca1\" value=\"$_POST[ca1]\"> <input type=\"hidden\" name=\"tse\" value=\"exa\"> <input type=\"hidden\" name=\"tse_1\" value=\"aes\"> <input type=\"hidden\" name=\"tse_2\" value=\"bsc\"> <input type=\"hidden\" name=\"tse_3\" value=\"vzo\"> </form>"; 

Haveria como eu contornar isso?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

20-09-2014 16:16

Isso sempre vai acontecer com os dados que sejam enviados, porque já foram enviados e não podem ser reenviados.
Você pode tentar enviar os dados para uma página intermediária que armazene os dados em uma SESSION, depois redireciona para página final.

Não sei se vai dar certo, porque depende de como seu sistema funciona.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 16:19

Sim. Estou vendo isso de armazenar em SESSION. Se eu mandar por "get" resolve o problema? Se sim, criaria outro?
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 16:25

Desculpe por postar antes de você responder. Vou tentar como você disse. Isso de armazenar os dados numa SESSION em página intermediária tem a ver com isso: http://php.net/manual/pt_BR/function.se ... expire.php? Pode me dizer como crio essa SESSION?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

20-09-2014 16:39

Para criar a SESSION, na página onde você vai usar a mesma precisa ter o seguinte no topo:

<?php // NO TOPO DO DOCUMENTO ANTES DE QUALQUER CÓDIGO  session_start(); ?>

Para armazenar os valores na SESSION, segue essa regra:

// PARA EXIBIR O VALOR SALVO: echo $_SESSION['nome_um']; $_SESSION['nome_um'] = "valor um"; $_SESSION['nome_dois'] = "valor dois"; 

Para remover todos os valores da SESSION, e depois terminar a mesma, use:

session_unset();  session_destroy(); 

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 16:48

Vou tentar.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 17:18

Este é o código do link do menu:

$ce2 .= "<form method=\"post\" name=\"frm_ce2_bss\" action=\"pgn_int_bss.php\" target=\"_self\" style=\"margin: 0px; padding: 0px;\"> <input type=\"submit\" name=\"bss\" value=\"$mnu\" title=\"$tit_mnu\" class=\"nrm\" onmouseover=\"this.className='ovr'\" onmouseout=\"this.className='nrm'\"> <input type=\"hidden\" name=\"ta1\" value=\"$_POST[ta1]\"> <input type=\"hidden\" name=\"ca1\" value=\"$_POST[ca1]\"> <input type=\"hidden\" name=\"su1\" value=\"$asc_tbl_sct[su1]\"> <input type=\"hidden\" name=\"tse\" value=\"exa\"> <input type=\"hidden\" name=\"tse_1\" value=\"aes\"> <input type=\"hidden\" name=\"tse_2\" value=\"bss\"> <input type=\"hidden\" name=\"tse_3\" value=\"vzo\"> </form>"; 

Este é o código da página intermediária (pgn_int_bss.php):

Estou submetendo o formulário através de javascript. Foi a maneira que encontrei de submeter o formulário. Não sei como fica o fim da sessão nesse caso. Não está voltando a página. O conteúdo dessa página deve ser outro? A página de destino a partir da intermediária é bss.php.

<? session_start(); echo $_POST['ta1']; echo "&nbsp;-&nbsp;"; echo "variável POST ta1"; echo "<br>"; echo $_POST['ca1']; echo "&nbsp;-&nbsp;"; echo "variável POST ca1"; echo "<br>"; echo $_POST['su1']; echo "&nbsp;-&nbsp;"; echo "variável POST su1"; echo "<br>"; echo $_POST['tse']; echo "&nbsp;-&nbsp;"; echo "variável POST tse"; echo "<br>"; echo $_POST['tse_1']; echo "&nbsp;-&nbsp;"; echo "variável POST tse_1"; echo "<br>"; echo $_POST['tse_2']; echo "&nbsp;-&nbsp;"; echo "variável POST tse_2"; echo "<br>"; echo $_POST['tse_3']; echo "&nbsp;-&nbsp;"; echo "variável POST tse_3"; echo "<br>"; $_SESSION['ta1'] = $_POST['ta1']; $_SESSION['ca1'] = $_POST['ca1'];  $_SESSION['su1'] = $_POST['su1']; $_SESSION['tse'] = $_POST['tse'];  $_SESSION['tse_1'] = $_POST['tse_1']; $_SESSION['tse_2'] = $_POST['tse_2']; $_SESSION['tse_3'] = $_POST['tse_3']; echo "<form method=\"post\" name=\"frm_pgn_int_bss\" action=\"bss.php\"> <input type=\"hidden\" name=\"ta1\" value=\"$_SESSION[ta1]\"> <input type=\"hidden\" name=\"ca1\" value=\"$_SESSION[ca1]\"> <input type=\"hidden\" name=\"su1\" value=\"$_SESSION[su1]\"> <input type=\"hidden\" name=\"tse\" value=\"$_SESSION[tse]\"> <input type=\"hidden\" name=\"tse_1\" value=\$_SESSION[tse_1]\"> <input type=\"hidden\" name=\"tse_2\" value=\"$_SESSION[tse_2]\"> <input type=\"hidden\" name=\"tse_3\" value=\"$_SESSION[tse_3]\">"; ?> <script type="text/javascript"> document.frm_pgn_int_bss.submit() </script> <? echo "</form>"; exit(); ?>

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

Documento fora de validade

20-09-2014 17:39

Eu suponho que você tenha alguma página, que ao clicar no link, manda os dados para o formulário que você postou, e automaticamente redireciona via JavaScript para o documento final. Ter um link voltar realmente não faz nenhum sentido ai, até porque o usuário não veio basicamente do formulário, e sim do link.

Esse history.back deveria remeter o usuário para a primeira página, de onde ele saiu.

O que você pode tentar fazer é usar o javascript:window.history.go(-2) que vai remeter o usuário a 2 páginas anteriormente. Não sei se daria certo com esse redirecionamento JavaScript.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 17:56

Sim. Sobre o que você disse de não ter sentido, tem razão. É que em todas as páginas eu coloquei uma figura com botão voltar, e quando se clica nele dá tal erro. Eu gostaria de evitar a mensagem de erro. E o mesmo ocorre quando se clica no botão voltar do navegador. Eu fiz um teste, enviando o form do link por get, para a página intermediária, sem a SESSION; esta envia para a página de destino através de post. Quando se clica no botão voltar, não volta, mas não dá a mensagem de erro. Acho que vou deixar assim.
0
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 17:57

Também vou tentar isso: javascript:window.history.go(-2).
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

20-09-2014 18:08

Se possível, manda o link para página intermediária, nela, armazena só os dados na SESSION, sem formulário, e depois manda para finalização. Ai usa o history.back(-2).

Obs.: Usa o header location PHP para redirecionar ao invés do JavaScript
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

20-09-2014 18:27

Mas como passarei os dados na SESSION para a página seguinte, que recebe os dados por POST, que são usados na consulta no banco de dados, se fizer como você disse? Eu testei history.back(-2), e, a princípio, deu certo, sem outras alterações. Vou confirmar. Mas gostaria de saber como passo os dados para a página do redirecionamento, se feito como você disse.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

20-09-2014 19:03

É, nesse caso não daria para redirecionar com os dados via POST. Mas se deu certo como fez blz.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

24-09-2014 08:21

É possível manter o tópico aberto? Parece que essa ocorrência também se dá quando se envia por get, ou link. Penso se pode ter a ver com o código do cache no cabeçalho. Parece que eu o tirei. Mas meu trabalho apertou e vou poder ver isso no fim de semana.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

24-09-2014 08:55

Sem problema. A questão do retornar no navegador, qual seria a finalidade?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

02-10-2014 21:57

Boa noite! Poder apenas retornar, como opção. Cara, na área pública do site, transformei links, inclusive que enviavam dados, em formulário, com método POST, enviando os dados como hidden. Isso causou outro problema, além de não se retornar no navegador. No caso, estou criando um site de anúncios de veículos, com notícias. Se, por exemplo, quiser passar o link de uma notícia para alguém, não o conseguirei. Outra coisa, eu fazer a consulta no banco de dados apenas com o id do anúncio ou da notícia é suficiente? Digo no sentido de se estar chamando o registro correto. Quanto à questão, de se fazer funcionar o botão "voltar", é melhor eu chamar a página por link? Se trocar POST por GET terá o mesmo efeito? Se sim, o que é melhor: o link ou o formulário com GET?
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

03-10-2014 08:12

Para sistema de notícia, uma boa seria criar uma coluna extra no banco de dados como referência da notícia, tipo:

http://site.com/essa-e-a-noticia

Esse trecho em negrito seria uma chave que seria cadastrado junto com a notícia, ou seja, pegaria o título, retira-se espaço, troca caracteres com acento pelo mesmo sem acento, e é usado como chave para a notícia.
Esse método é melhor para buscadores.

Se quiser a função que cria essa chave procura no fórum a função retirar acentos.

Os dados enviados via POST são considerados "seguros", ou seja, que é necessário que o visitante não veja os dados que estão sendo enviados. Até por isso tem essa restrição do navegador de não permitir o voltar.

Se os dados a serem enviados de uma página para outra não forem seguros como senhas, a melhor forma seria o GET.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

04-10-2014 10:15

Vou procurar a função que você citou, que cria a chave para se cadastrar com a notícia.

Se, então, eu enviar, por exemplo, apenas o id do anúncio ou da notícia, para a consulta no bd, fazendo-o por GET, o botão "voltar" funcionará?

Exemplificando minha dúvida entre POST e GET: no link desta página (viewtopic.php?f=1&t=8458&p=30430#p30430), os dados são enviados por form com GET ou por link? Se eu copio do navegador e colo noutra janela, a página se abrirá. É isso que quero permitir. Que o anunciante do anúncio que quiser divulgá-lo possa divulgar o link do anúncio, e, quanto à notícia, que eu possa divulgá-la da mesma forma.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

04-10-2014 14:53

Desde que não tenha um submit em formulário, o voltar vai funcionar.

Aqui no fórum antigamente só passava os ids do fórum e tópico, como a seguir
http://codigosnaweb.com/forum/viewtopic.php?f=1&t=8458&st=0&sk=t&sd=a

Eu implementei desse modo que falei, passando uma referência junto do link
http://codigosnaweb.com/forum/Documento-fora-de-validade_1_8458.html
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

05-10-2014 06:33

Entendi. Vou fazer um teste dessa forma como implementou, então.

Mas nesta página parece estar usando a forma antes da implementação. Está? E manda os valores por GET, se estiver?

Encontrei este texto sobre a diferença entre GET e POST: http://www.comocriarsites.com/html/como ... iferencas/. Diz que GET utiliza a URL para enviar os dados ao servidor sem alterar algo nele, próprio para consultas; e que POST separa a URL dos dados, deixando-os no corpo da mensagem, próprio para alteração de algo no servidor.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

05-10-2014 12:19

O sistema do fórum só envia os dados por GET, no caso para ver um tópico ou fórum. Essa função que indiquei para usar o nome do título como link, é usada no fórum via htaccess, que também obtém o id do fórum e id do tópico para mostrar o tópico.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 1000 postagens
Mais de 1000 postagens
Tópico Autor
Mensagens: 1254
Sexo: Masculino

Documento fora de validade

05-10-2014 18:48

Sim. Entendi. Vou testar a função que indicou. Eu mantive o link da parte de notícias como formulário, trocando de POST para GET. Funcionou, inclusive o botão voltar, mas aparece, no campo de endereço, o título da notícia, como você disse. Exibe isto: http://localhost/vb1_g/exa/eip/eip_2.ph ... vzo&anu=11. Há máscara para isso? Isso não ocorria com POST. Eu fiz tal alteração, e, também, para teste, mantive o link como link, mesmo. Das duas formas, link e formulário com GET, o botão voltar funcionou. Você disse que se houver submit o botão voltar não funcionaria. Mas parece que isso não se dá em face de GET. Essa dificuldade se daria com POST, mesmo, e seria próprio dele. É o que estou concluindo.
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17609
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Documento fora de validade

05-10-2014 19:26

Creio que o método POST visa proteger os dados enviados. Já no GET os dados não são protegido, por isso a forma do link que você informou.

Não conheço uma forma de ocultar os dados por GET via formulário ou link.
O mais próximo seria você ter o banco de dados com as informações já cadastradas, e só passar 1 identificador pelo link, para a consulta no banco de dados.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

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