Passar array via url

3,317 views
Skip to first unread message

Bruno Wired

unread,
Feb 17, 2010, 8:08:34 AM2/17/10
to LISTA PHP
Bom dia.

Como eu faço para passar as chaves de um array como parâmetros de uma
url?

Por exemplo:

//array

$user['id'] = 1;
$user['nome'] = 'bruno';
$user['email'] = 'br...@teste.com';

//url

teste.php?id=1&nome=bruno&email=br...@teste.com

Alan Maia

unread,
Feb 17, 2010, 11:08:15 AM2/17/10
to list...@googlegroups.com
Uma dica não é um boa pratica passar algumas informações na URL pois fica
visivel a qualquer pessoa, passe somente valores e crie campos ocultos
(hidden) assim vc poderá passar a informações sem que "ninguem veja".

Alan Maia

Beatriz KMS

unread,
Feb 17, 2010, 11:28:45 AM2/17/10
to list...@googlegroups.com
Precisa passar nome e email?!
Atraves do id vc nao consegue esses dados?

Respondendo a sua pergunta: vc poderia usar foreach pra montar a sua url.

> --
> ============================================================
> LEIAM SEMPRE AS REGRAS DA LISTA:
> http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
> --
> LISTA PHP > http://groups.google.com.br/group/listaphp
> --
> REVISTA PHP > http://www.revistaphp.com.br
> --
> AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
> --
> PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
> --
> DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
> ============================================================

Deivisson Sedrez

unread,
Feb 17, 2010, 5:04:13 PM2/17/10
to list...@googlegroups.com
poisé, eu te recomendaria passa só o id, e do outro lado faz um select pra puxar e-mail e nome, ou o mais indicado é passar por hidden se tiveres usando form

ex.
<input type="hidden" name="id" value="1"> e faz um pra cada campo

mas se quiseres mesmo pasar pela url, tais errando na concatenação,  acho que o correto seria com aspas simples

teste.php?id='1'&nome='bruno'&email='br...@teste.com'

abraço

p.s. se tu passar só o $user e dar um explode do outro lado não funciona ?

Att
Deivisson Sedrez


2010/2/17 Beatriz KMS <beatr...@gmail.com>

Paulo Patto

unread,
Feb 17, 2010, 5:20:40 PM2/17/10
to list...@googlegroups.com


Bem como os colegas da comunidade já falaram passe o id se for uma ação de recuperação de dados ou exclusão agora se for um método de atualização ou gravação de objetos o mais corréto é usar métodos HTTP::POST e HTTP::PUT. Ou seja passe via poste se precisar de intercâmbio de objetos entre tecnologias, use o JSON. Até por que se o seu array for muiito grande pode estourar o limite da URL.

Assim se você não conhece aconselho a pesquisar sobre Restful e frameworks mvc como CakePHP e Codeigniter, eles te levam a trabalhar com esse tipo de coisa.


Espero ter ajudado.

Atenciosamente
Paulo Patto
Analista de TI. & Desenvolvedor
mobile: (11) 8217.3514
home: (11) 4666.1445
mail:
Aquila non capit muscas.
Provérbio Latino

--
Esta mensagem foi enviada utilizando formatacao UTF-8 e codificacao XHTML e estilos em cascata css. Caso tenha dificuldade na visualizacao, habilite a opcao de html no seu leitor de e-mails.

------------------------------------------------------------------------------------------------------------------------
Atenciosamente
Paulo Patto
Analista de TI
+55 (11)8217-3514
http://www.paulopatto.com
http://paulopatto.wordpress.com
------------------------------------------------------------------------------------------------------------------------
"Quis custodiet ipsos custodes?"
-- Decimus Iunius Iuvenalis .
------------------------------------------------------------------------------------------------------------------------
- Esta mensagem aborda um ponto de vista pessoal e não  deve ser interpretado como verdade absoluta. Por gentileza não corte seus pulsos.
- Se por ventura o texto acima tenha-lhe passado a impressão de ofensa a sua pessoa, credo,  opinião ou qualquer outro tipo de atitude contra sua pessoa, creio que esta talvez não tenha sido essa a real intenção.
- A resposta acima talvez tenha sido obtida em menos de cinco minutos no Google.com.
- A duvida acima, talvez não tenha sido sanada em cinco minutos de pesquisa ao Google.com.
------------------------------------------------------------------------------------------------------------------------

Julio Protzek

unread,
Feb 17, 2010, 5:40:37 PM2/17/10
to list...@googlegroups.com
É possível passar um array indexado:

pagina.php?user[]=1&user[]=bruno&user[]=br...@teste.com

para pegar:

<?php

$user['id']= $_GET[0];
$user['nome']= $_GET[1];
$user['email']= $_GET[2];

?>

Mas nesse tipo de situação já está com cara de POG e vai te dar dor de cabeça no futuro.

Se quiser pegar informações use GET e passe apenas o ID.
Se quiser passar informações use POST.
Se quiser mais use REST.

2010/2/17 Bruno Wired <bruno...@gmail.com>

Jean

unread,
Feb 17, 2010, 5:46:12 PM2/17/10
to list...@googlegroups.com
Nossa que coisa horrivel uahuhahuuahhua

2010/2/17 Julio Protzek <juliop...@gmail.com>:

--
Jean C. Nascimento
Desenvolvedor Web
http://twitter.com/suissacorp

Zerotrack Inteligência Digital
http://zerotrack.com.br
http://twitter.com/zerotrack
(48) 3364-3147

Felipe Nascimento de Moura

unread,
Feb 17, 2010, 5:57:00 PM2/17/10
to list...@googlegroups.com
json, meu amigo, please :)
ou entao, use um padrao qualquer (mais feio, mas funciona), tipo:
xxx.php?variavel=felipe|9|24|RS

e usa no php
$tmp= explode('|', $_GET['variavel']);
$user['nome']= $tmp[0];
$user['id']= $tmp[1];
$user['idade']= $tmp[2];
$user['uf']= $tmp[3];

Mas dê preferencia ao jSon, se puder
Felipe N. de Moura
Desenvolvimento Web

http://felipenascimento.org
http://thewebmind.org
---------------------------------
Fazendo da web um lugar melhor pra se viver.
Making the web a better place to live

Gilberto M O Otani

unread,
Feb 17, 2010, 6:09:58 PM2/17/10
to list...@googlegroups.com
faça assim:

$url = "teste.php?";
foreach ($user as $chave => $valor) {
$url .= "$chave=$valor&";
}

echo $url;

> --
> ============================================================
> LEIAM SEMPRE AS REGRAS DA LISTA:
> http://groups.google.com.br/group/listaphp/web/regras-da-lista-php
> --
> LISTA PHP > http://groups.google.com.br/group/listaphp
> --
> REVISTA PHP > http://www.revistaphp.com.br
> --
> AJAX-BRASIL > http://groups.google.com/group/ajax-brasil
> --
> PYTHON-GOOGLE > http://groups.google.com.br/group/python-google
> --
> DOTNET-BRASIL > http://groups.google.com.br/group/dotnet_br
> ============================================================

--
Gilberto M O Otani
gilbert...@gmail.com

Jean

unread,
Feb 17, 2010, 6:15:25 PM2/17/10
to list...@googlegroups.com
Soh nao entendi ainda pq pegar por GET?

se as vars estao na url

--

Gilberto M O Otani

unread,
Feb 17, 2010, 6:15:32 PM2/17/10
to list...@googlegroups.com
Olha só, achei uma coisa legal:

tenta assim:

$url = "test.php?".http_build_query($user);

http://www.php.net/manual/en/function.http-build-query.php

Gilberto M O Otani

unread,
Feb 17, 2010, 6:17:27 PM2/17/10
to list...@googlegroups.com
Eu achei q ele quisesse montar a url... Não é isso?

Vitor Amaral

unread,
Feb 17, 2010, 6:18:59 PM2/17/10
to list...@googlegroups.com
Realmente nao é muito recomendado, mas vou tentar ajudar à, tirar sua dúvida.
Um jeito q da certo, pq eu já usei. (Claro q sem campos com info do user, pq senao segurança zero né rs).
Mas funciona.


$array = array('nome' => $nome, 'sobnome' => $sobnome, 'email' => $email);
$dados_retornados = serialize($array);


O link ficaria:
teste.php?dados_retornados=<?php echo $dados_retornados; ?>


Aiiiii, no teste.php vc recupera o array:.

if(isset($_GET['dados_retornados']))$array_dados_retornados = unserialize($_GET['dados_retornados']);


e usa o array normalmente:

echo $array_dados_retornados['nome'];




PS:
1 - O método serialize pega um array e cria uma string XML dos dados..
2 -  unserialize volta o array de origem..



Se quiser saber mais:

http://php.net/manual/pt_BR/function.serialize.php
http://www.php.net/manual/pt_BR/function.unserialize.php




Att....


Vitor Amaral
Analista Programador - Supervisor de Desenvolvimento
caosdevelopers.com


From: felipe...@gmail.com
Date: Wed, 17 Feb 2010 19:57:00 -0300
Subject: Re: [ PHP - Google ] Passar array via url
To: list...@googlegroups.com

Quer fazer a bateria do seu notebook render mais? Clique aqui e descubra como.

Beatriz KMS

unread,
Feb 17, 2010, 6:18:41 PM2/17/10
to list...@googlegroups.com
Putz.... nao sabia dessa função! Legal mesmo......

On Wed, Feb 17, 2010 at 21:15, Gilberto M O Otani

Alan Maia

unread,
Feb 17, 2010, 6:20:16 PM2/17/10
to list...@googlegroups.com
Dei a dica anteriormente, não é aconselhado passar alguns dados pela URL
pois fica visivel a qualquer um.

Use somente numeros de registro, id, enfim.

Passe essas info por um campo oculto via post e recupera em GET

Alan Maia


On Wed, 17 Feb 2010 21:15:32 -0200, Gilberto M O Otani

Jean

unread,
Feb 17, 2010, 6:24:24 PM2/17/10
to list...@googlegroups.com
Logico velho nao sei nem pq passar os dados pela variavel, coisa mais
insegura para nao falar outras coisas!

VELHO PASSA SOH O ID e busca as infos no banco!

--

Gilberto M O Otani

unread,
Feb 17, 2010, 6:28:31 PM2/17/10
to list...@googlegroups.com
É, eu tb não conhecia, acabei de encontrar. O interessante é q ela já
vai com um urlencode embutido, ou seja, é bom tomar cuidado com
espaços em branco e coisas do tipo.
Reply all
Reply to author
Forward
0 new messages