Estou tentando passar uma URL como um parâmetro de URL no php, mas quando tento obter esse parâmetro, não recebo nada
Estou usando o seguinte formulário de URL:
http://localhost/dispatch.php?link=www.google.com
Estou tentando passar por isso:
$_GET['link'];
Mas nada voltou. Qual é o problema?
var_dump
do$_GET
param, ele deve estar lá$_REQUEST['link']
o trabalho? Lembre-se também de que a chave de índice diferencialink
maiúsculas de minúsculas do conteúdo do URL.$_GET
postar, mas está postando, está?Respostas:
$_GET
não é uma construção de função ou linguagem - é apenas uma variável (uma matriz). Experimentar:Em particular, é uma superglobal : uma variável interna que é preenchida pelo PHP e está disponível em todos os escopos (você pode usá-la de dentro de uma função sem a palavra-chave global ).
Como a variável pode não existir, você pode (e deve) garantir que seu código não acione avisos com:
Como alternativa, se você quiser pular verificações manuais de índice e talvez adicionar mais validações, poderá usar a extensão de filtro :
Por último, mas não menos importante, você pode usar o operador coalescente nulo (disponível desde o PHP / 7.0 ) para manipular os parâmetros ausentes:
fonte
localhost
e esta solução não está funcionando.http://localhost/station?type=2
echo $_GET['type'];
énull
parse_str(parse_url($actual_link)['query'], $params);
. Mais informações stackoverflow.com/a/11480852/4458531Por favor, poste seu código,
ou
fazer o trabalho ...
fonte
Para garantir que você esteja sempre do lado seguro, sem obter todos os tipos de inserção indesejada de código, use FILTROS:
Mais leitura na função php.net filter_input , ou confira a descrição dos diferentes filtros
fonte
Usa isto:
Ou apenas use:
fonte
A resposta aceita é boa. Mas se você tiver um cenário como este:
Você pode tratar a âncora nomeada como uma sequência de consultas como esta:
Em seguida, acesse-o assim:
fonte
Eu não estava conseguindo nada
$_GET["..."]
(por exemplo,print_r($_GET)
deu uma matriz vazia), mas$_SERVER['REQUEST_URI']
mostrei que as coisas deveriam estar lá. No final, descobri que eu estava apenas acessando a página da Web porque meu .htaccess a estava redirecionando para lá (meu manipulador 404 era o mesmo arquivo .php, e eu cometi um erro de digitação no navegador durante o teste).Simplesmente mudar o nome significava que o mesmo código php funcionava quando o redirecionamento 404 não estava chegando!
Portanto, existem maneiras de
$_GET
não retornar nada, mesmo que o código php possa estar correto.fonte
Matriz ([0] => link = www.google.com)
fonte
Quem não receber nada em troca, acho que ele apenas deve incluir o resultado em tags html,
Como isso:
fonte
Como Alvaro disse, $ _GET não é uma função, mas uma matriz que contém os parâmetros. Assim, você pode recuperar um elemento dessa matriz usando
OP esperado:
fonte