Pergunta

Qual é o método mais confiável, melhor e mais seguro para usar variáveis ​​de URL passadas para páginas diferentes:1).Usando variáveis ​​SESSION como parâmetros de URL ou

2).Parâmetros regulares de string de consulta.

"Mais confiável, melhor e mais seguro" em relação a:1.Prevenir problemas derivados do lado do cliente, como quando um usuário desativa os cookies 2.Compatibilidades do navegador 3.Fazer chamadas de API (como algumas APIs têm limitações e problemas de compatibilidade) 4.Uso de recursos e memória e velocidade de processamento

Estou criando um site onde a quantidade de parâmetros de string de consulta nos URLs pode variar (potencialmente 9 valores transportados no URL) - com base na entrada do usuário.Pareceria mais fácil armazenar os valores das variáveis ​​em variáveis ​​de sessão do que transportar todos eles (possivelmente 9) em parâmetros de URL.Mas devido às quatro preocupações mencionadas acima, hesito em usar variáveis ​​SESSION.

Obrigado por qualquer conselho!

PS.Os parâmetros da URL estão sendo construídos dinamicamente na variável $ url, como este:

$keyword = trim($_GET["Keyword"]);

$url = "webpage.php?";
$url .= "&Keyword=$keyword";

$shopByStore = $_GET["store"];
if (!empty($shopByStore)) {
$url .= "&store=$shopByStore";
}
// with 7 more GET methods potentially retrieving values for the URL parameters 

As URLs ficarão assim:

<a href="<?php echo $url; ?>">anchor text</a><br>

E, claro, se eu seguir a rota da variável SESSION, os valores de entrada do usuário serão obtidos a partir de cliques em URL e armazenados nas variáveis ​​SESSION até que a sessão termine.

if (isset($_GET["store"])) {
$_SESSION["shopByStore"] = $_GET["store"];
}  
Foi útil?

Solução

Claro que é possível salvar, por exemplo, uma palavra-chave enviada para uma pesquisa em uma variável de sessão.

Mas é útil?Não.

A variável de sessão esquecerá tudo quando a sessão for destruída.Talvez o usuário queira salvar a pesquisa ou entregá-la a outro usuário?

Com parâmetros GET não há problema, basta copiar a URL completa e guardá-la.

Mas com SESSION parâmetros?Não é possivel.Cada usuário tem sua própria sessão e na próxima vez que visitar o site, ele terá outra sessão (por exemplo, se os usuários fecharem o navegador antes).

Nas sessões você deve armazenar apenas informações específicas do usuário.Por exemplo, o ID do usuário, nome de usuário ou itens da cesta.

Esses são apenas alguns pontos para SESSION contra GET.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top