[Pregunta]: Problema con la redirección de un formulario

Iniciado por Leguim, 16 Enero 2020, 18:40 PM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

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 (php) [Seleccionar]

<form action="<?php $search_users 'search_users.php'; echo urlencode($search_users); ?>" method="get">
      <input type="text" name="input_search" id="input_searcher" class="input_searcher" placeholder="Buscar personas" maxlength="28" value="" autocomplete="off">
      <button type="submit" id="submit_search_users" class="submit_search_users"></button>
</form>


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?

@XSStringManolo

#1
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.