Estoy tratando de pasar una URL como parámetro de url en php pero cuando trato de obtener este parámetro no obtengo nada
Estoy usando la siguiente forma de URL:
http://localhost/dispatch.php?link=www.google.com
Estoy tratando de lograrlo:
$_GET['link'];
Pero nada volvió. ¿Cuál es el problema?
var_dump
del$_GET
param, debería estar allí$_REQUEST['link']
el trabajo? También tenga en cuenta que la clave de índice distingue entrelink
mayúsculas y minúsculas de lo que hay en la url.$_GET
publicar algo, ¿verdad?Respuestas:
$_GET
no es una función o construcción de lenguaje, es solo una variable (una matriz). Tratar:En particular, es un superglobal : una variable incorporada que está poblada por PHP y está disponible en todos los ámbitos (puede usarla desde dentro de una función sin la palabra clave global ).
Como la variable podría no existir, puede (y debería) asegurarse de que su código no active avisos con:
Alternativamente, si desea omitir las comprobaciones de índice manuales y tal vez agregar más validaciones, puede usar la extensión de filtro :
Por último, pero no menos importante, puede usar el operador de fusión nula (disponible desde PHP / 7.0 ) para manejar los parámetros que faltan:
fuente
localhost
y esta solución no funciona.http://localhost/station?type=2
echo $_GET['type'];
esnull
parse_str(parse_url($actual_link)['query'], $params);
. Más información stackoverflow.com/a/11480852/4458531Por favor publique su código,
o
hacer trabajo ...
fuente
Para asegurarse de estar siempre en el lado seguro, sin obtener todo tipo de inserción de código no deseado, use FILTROS:
Más información sobre la función php.net filter_input , o consulte la descripción de los diferentes filtros
fuente
Utilizar este:
O simplemente use:
fuente
La respuesta aceptada es buena. Pero si tienes un escenario como este:
Puede tratar el ancla con nombre como una cadena de consulta como esta:
Luego, acceda así:
fuente
No estaba obteniendo nada para ninguno
$_GET["..."]
(por ejemplo,print_r($_GET)
di una matriz vacía) pero$_SERVER['REQUEST_URI']
mostraba que las cosas deberían estar allí. Al final resultó que solo estaba llegando a la página web porque mi .htaccess lo estaba redirigiendo allí (mi controlador 404 era el mismo archivo .php, y había cometido un error tipográfico en el navegador durante la prueba).¡Simplemente cambiar el nombre significaba que el mismo código php funcionó una vez que la redirección 404 no estaba funcionando!
Por lo tanto, hay formas de
$_GET
no devolver nada a pesar de que el código php puede ser correcto.fuente
fuente
Quien no recupere nada, creo que solo tiene que incluir el resultado en etiquetas html,
Me gusta esto:
fuente
Como dijo Alvaro, $ _GET no es una función sino una matriz que contiene los parámetros Para que pueda recuperar un elemento de esa matriz usando
OP esperado:
fuente