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

pedrosorio

[RESOLVIDO]Esconder url

19 mensagens neste tópico

Não sei se estou na secção certa, espero que sim.

Imaginem que eu escrevo um url de um ficheiro php com *.php?a=5  , por exemplo, e quero receber os dados que estão na url. Tenho que usar GET certo? Como é que eu escondo a parte do a=5?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Yep, o GET e o POST são usados de maneira semelhante, sendo que enquanto o GET mostra no url as variaveis que definiste, o POST não.

The difference between METHOD="GET" (the default) and METHOD="POST" is primarily defined in terms of form data encoding. The official recommendations say that "GET" should be used if and only if the form processing is idempotent, which typically means a pure query form. Generally it is advisable to do so. There are, however, problems related to long URLs and non-ASCII character repertoires which can make it necessary to use "POST" even for idempotent processing.

Fonte: http://www.cs.tut.fi/~jkorpela/forms/methods.html

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu já li isso. Mas fiquei com a impressão de que se escrevesse no url directamente *.php?a=5 e depois usasse o POST, aquilo não me reconhecia a variável.

Eu quero poder escrever no url e que ao fazer load da página desapareça do url.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Não dá com o GET!

Ao utilizares o POST, as várias variáveis não serão sequer colocadas no url.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu quero poder escrever no url e que ao fazer load da página desapareça do url.

Pouco provável que isso exista.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Podes inventar.... lol tipo... ir para endereço.php?sdfsd=sdfsdfsd&sdfsd=sfdsfsd e depois fazes um redirect para endereço.php e guardas como session ou assim... mas isso é algo impensável...

Podes te explciar ao certo o que queres? talvez haja alternativas para alem de posts

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Eu abro uma url a partir de um programa e quero enviar dados que têm que estar contidos no url, mas não quero que o utilizador os veja. E já vi isto feito...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Está aqui é um pouco de confusão.

GET e POST são dois tipos de pedidos HTTP, não são funcionalidades do PHP.

Lê primeiro um tutorial sobre HTTP por exemplo na wikipédia, ou um que aí anda que se chama "HTTP made really simple", é bem mais simples do que parece.

Ao inserires um url no teu browser estás a fazer um pedido do tipo GET. Os pedidos GET consistem simplesmente em cabeçalhos, dos quais o cabeçalho que contem o URL e cujo nome exacto não me lembro é obrigatório.

Um pedido do tipo POST, pode conter, para alem dos cabeçalhos, mais dados no fim destes. Tipicamente coisas escritas em formulários HTML em páginas web, mas á muitas mais formas de enviar pedidos post e mais situações em que isso é usado. Para dares a oportunidade ao utilizador de fazer um pedido do tipo POST na tua página, tens que ou criar um formulário com campos pré-definidos e um butão submit, podes disfarça-lo de link com javascript. Outra forma é usares o javascript para fazeres o pedido.

Mas porque é que queres tirar isso do url? Esconder isso é inutil.

EDIT.... ok já via  tua resposta.

Deves então enviar um pedido post usando uma biblioteca HTTP escrita linguagem em que o teu programa está escrito. Essas bibliotecas são fequentemente chamadas coisas tipo CURL, urllib, httpclient, etc.

Mas se o utilizador quiser ver o que lá está é questão de intalar o whireshark.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ou então para os dados mais sensiveis podes sempre inventar um pequeno algortimo que te encripte (?) /desencripte (?) a informação...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Afinal acabei por conseguir  :)

<?php

ob_start();

?>

<html>

<?php>

...

header("location: file.php")

...

ob_end_flush();

?>

</html>

E funcionou  :)

Como eu percebo pouco de php podem-me dizer se incorri nalguma má prática de programação? Pode trazer alguma desvantagem?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

O que isso faz é enviar no cabeçalho HTTP o código 301, que significa "moved permanently" seguido de alguns parâmetros, sendo o parametros, um dos quais é o location, para o browser do cliente saber para onde redirecionar.

Mas estou aqui a ver, isso funciona? É que tens html antes desse header, supostamente, a aprtir do momento que enviar html para o outpu os headers já foram enviados pelo que se definires um devia dar erro.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Mas estou aqui a ver, isso funciona? É que tens html antes desse header, supostamente, a aprtir do momento que enviar html para o outpu os headers já foram enviados pelo que se definires um devia dar erro.

Normalmente dá erro. Estranho...
0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se vocês repararem, ele está a fazer output buffering :)

Está bom. :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

podes sempre usar uma div ou iframe para te aparecer sempre o mesmo url :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se vocês repararem, ele está a fazer output buffering :)

Está bom. :)

Ya, quando tentei usar isso também me dava erro, mas depois vi um exemplo em que impediam de fazer output até ao fim do código usando ob_start() e ob_end_flush

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Bom se a ideia é enviar informação de uma aplicação desktop para um servidor web, a melhor forma é mesmo o webservice no entanto com php é um pouco mais complicado mas faz-se

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Se vocês repararem, ele está a fazer output buffering :)

Está bom. :P

lol, não reparei :)

Bom se a ideia é enviar informação de uma aplicação desktop para um servidor web, a melhor forma é mesmo o webservice no entanto com php é um pouco mais complicado mas faz-se

Quem disse isso?
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