Necesito redirigir al usuario desde una página con example.com/node/add/dispo?arg1=1&arg2=2 al mismo tipo de URL. Pero cuando simplemente hago un drupal_goto(request_uri());
, redirige a mi usuario a example.com/node/add/dispo%25F%3C, etc.
Intenté un str_replace pero no funcionó.
¿Tendrías alguna solución?
drupal_goto()
hace es construir una URL basada en los parámetros proporcionados, que luego llamaheader()
a sí mismo. Las principales diferencias son quedrupal_exit()
se llama, dando una salida limpia al script, y si$_GET['destination']
está configurado, anulará la ruta que pasa a la función. En general, sedrupal_goto()
debe usar, pero hay ocasiones en que lo buenoheader()
es más apropiado. Solo depende de lo que necesite hacerEsto es lo mismo que la respuesta de Clive. Es IMO correcto, pero solo quería agregar la respuesta que se adapte a su caso de uso 1: 1.
Querías llamar
drupal_goto()
a la misma ubicación que la actual.current_path () devuelve node / add / dispo; drupal_get_query_parameters () devuelve todos los
$_GET
parámetros, excepto$_GET['q']
cuál es la ruta interna nodo / add / dispo.Cuando llama
drupal_goto()
, Drupal puede reconstruir el mismo URI para enviar al usuario.fuente
También puedes usar
drupal_goto($GLOBALS['base_root'] . request_uri());
Tenga en cuenta que no es igual a
drupal_goto(request_uri());
donde el parámetro pasado se codifica como si fuera una ruta interna de drupal, que en realidad es la fuente de su problema.fuente
En realidad lo hice funcionar usando
header("location: " . $base_path . request_uri());
fuente