Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 16 Enero 2020, 18:40 pm



Título: [Pregunta]: Problema con la redirección de un formulario
Publicado por: Leguim en 16 Enero 2020, 18:40 pm
Tengo un buscador donde al dar (enter) espero que se le envíe a una pagina que se llame search_users?word=x

x sería el valor que se envía en el input, entiendo que existen maneras de hacer esto a través de javascript pero quiero hacerlo con PHP

Siempre use este método (lo aprendí en un curso que tome a principios del año pasado de PHP)
Código
  1. <form action="<?php $search_users = 'search_users.php'; echo urlencode($search_users); ?>" method="get">
  2.       <input type="text" name="input_search" id="input_searcher" class="input_searcher" placeholder="Buscar personas" maxlength="28" value="" autocomplete="off">
  3.       <button type="submit" id="submit_search_users" class="submit_search_users"></button>
  4. </form>
  5.  

El problema con esto es que me envía a search_users.php?input_search=x
y yo quiero que sea ?word=x no ?input_search
entiendo que el nombre de la variable $_GET es el nombre del input name="" pero no existe alguna manera que haga eso sin que tenga que ponerle name="word" a el input?


Título: Re: [Pregunta]: Problema con la redirección de un formulario
Publicado por: @XSStringManolo en 16 Enero 2020, 22:04 pm
No se que curso seguiste pero es una *****.

Urlencode no está haciendo absolutamente nada en tu código. Es una llamada inutil que no hace nada. Bueno si, recorre tu cadena para dejarla como está. No hay ningún caracter que encodear en tu url hardcodeada. Y aún por encima urlencode no sigue el standart DESDE EL 2005.


Contestando a tu pregunta, si pasas el parámetro por get lo normal es que se ve reflejado en la url. Si no es lo que quieres usar POST.

Tu url hardcodeada es a donde se hce la redirección a menos que uses ajax, xhr, fetch, etc. Que en ese caso no se redirige.


name es el nombre de parámetro con el que va a nombrar una propiedad del objeto o un nombre de variable en un array $_GET. Esto no es necesario debido a que puedes leer directamente el input raw.También puede simple y llanamente renombrar name a tu gusto y después usar ese identificador para obtener un referencia a la variable almacenada en $_GET o una copia.

PD: Como SIEMPRE que el usuario tenga la capacodad de mandarte input, debes parsearla, validarla, sanitizarla, pasarla por una api que detecte firmas de malware o lo que te de la gana hacer o como llamarlo. El caso es que no pueda afectar a tus usuarios.