Foros del Web » Programando para Internet » PHP »

Envío de datos por url

Estas en el tema de Envío de datos por url en el foro de PHP en Foros del Web. buenas tardes, espero que estén bien. mi problema es el siguiente: 1. estoy enviando variables a través del método get osea por URL 2. una ...
  #1 (permalink)  
Antiguo 07/08/2013, 11:36
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Envío de datos por url

buenas tardes,

espero que estén bien.

mi problema es el siguiente:

1. estoy enviando variables a través del método get osea por URL

2. una de esas variables es una cadena que dentro de ella tiene el caracter #

ejemplo: variable1=calle32#23-34


el problema es que cuando envió la cadena así por método get, cuando la voy a procesar, sólo puedo recuperar las variables que están antes de ese carácter, las que están en una posición posterior a la del carácter #, ya no las puedo recuperar.

lo anterior lo se, porque cuando estaba recuperando las variables para guardarlas en la base de datos, las que iban después del carácter, no las podía recuperar, entonces hice la prueba guardando en la variable el valor sin # y funciono.

ejemplo: variable1=calle32No23-34


¿cómo puedo hacer para que la url permita que este carácter se pueda ingresar en el formulario?


pd. yo se que con javascript puedo evitar que ese carácter sea ingresado, pero yo pienso que algo se puede hacer para que en la variable pasada por método get, funcione.

gracias amables personas, compartidoras de su conocimiento.
__________________
http://tecnologiaco.com/
  #2 (permalink)  
Antiguo 07/08/2013, 11:44
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Envío de datos por url

Lo que pasa es que eñ caracter # es especial para el navegador, ya que indica una ancla interna.

Para evitarlo debes escaparlo por su correspondiente URL-safe, es decir, en PHP tienes urlencode() lo cual basta para dicha tarea, en Javascript debes usar su equivalente.

Si estás usando un formulario no debería existir ningún problema pues debe pasar el valor tal cual, escapado, a menos que hagas algo que modifique el comportamiento natural del formulario.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 08/08/2013, 06:19
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
pateketrueke

muchas gracias por tu respuesta, voy a investigar sobre que es escapar y como se usa la función urlencode().

que pena la demora en la respuesta, es que habia estado algo ocupado

muchas gracias de nuevo.

pateketrueke,

me puedes explicar que significa URL -safe, a que se refiere y cómo se usa?


gracias
__________________
http://tecnologiaco.com/

Última edición por Triby; 08/08/2013 a las 06:27
  #4 (permalink)  
Antiguo 08/08/2013, 06:26
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Envío de datos por url

Consulta el manual para que te enteres: www.php.net/urlencode
__________________
- León, Guanajuato
- GV-Foto
  #5 (permalink)  
Antiguo 08/08/2013, 07:10
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Envío de datos por url

he leido sobre la funcion que indicas Triby, pero según veo, es cuando uno envia la URL

y lo que yo digo es que el usuario diligencia el formulario y luego no puedo recuperar el dato que tiene el #

como se podria hacer?

gracias
__________________
http://tecnologiaco.com/
  #6 (permalink)  
Antiguo 08/08/2013, 07:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Envío de datos por url

Cuando envías un formulario por método GET los datos son escapados automáticamente y no deberían causarte problemas.

Habría que ver si estás usando javascript para enviar el formulario y cómo lo procesas en PHP.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 08/08/2013, 07:50
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Envío de datos por url

Hola Triby,

te cuento que el envío lo hago por post.


no uso javascript

el procesamiento es el básico, es decir:

1. hay un archivo html con un formulario y metodo post
2. hay un archivo php que recibe los datos y los lee del array post

¿será por eso que el problema me sucede?


gracias
__________________
http://tecnologiaco.com/
  #8 (permalink)  
Antiguo 08/08/2013, 07:55
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 26
Antigüedad: 10 años, 8 meses
Puntos: 8
Respuesta: Envío de datos por url

Andres, antes de enviar la consulta utilizas url_encode, y al recibirla, url_decode, sino te pasara lo mismo.

Código PHP:
Ver original
  1. <?php
  2. echo '<a href="pagina.php?q=', urlencode($variables), '">';
  3. ?>
Código PHP:
Ver original
  1. <?php
  2. $query = $_GET['q'];
  3.  
  4. foreach (explode('&', $query) as $chunk) {
  5.     $param = explode("=", $chunk);
  6.  
  7.     if ($param) {
  8.         printf("Valor para \"%s\" es \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
  9.     }
  10. }
  11. ?>

Encode: http://php.net/manual/es/function.urlencode.php

Decode: http://php.net/manual/es/function.urldecode.php
  #9 (permalink)  
Antiguo 08/08/2013, 07:59
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Envío de datos por url

Muestra tu código para dejar de estar adivinando y tratar de ayudarte sobre algo real.
__________________
- León, Guanajuato
- GV-Foto
  #10 (permalink)  
Antiguo 08/08/2013, 07:59
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Envío de datos por url

Cita:
Iniciado por doctype Ver Mensaje
Andres, antes de enviar la consulta utilizas url_encode, y al recibirla, url_decode, sino te pasara lo mismo.

Código PHP:
Ver original
  1. <?php
  2. echo '<a href="pagina.php?q=', urlencode($variables), '">';
  3. ?>
Código PHP:
Ver original
  1. <?php
  2. $query = $_GET['q'];
  3.  
  4. foreach (explode('&', $query) as $chunk) {
  5.     $param = explode("=", $chunk);
  6.  
  7.     if ($param) {
  8.         printf("Valor para \"%s\" es \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));
  9.     }
  10. }
  11. ?>

Encode: http://php.net/manual/es/function.urlencode.php

Decode: http://php.net/manual/es/function.urldecode.php



doctype, muchas gracias por tu intención de ayudarme,
me podrias explicar por favor cómo usar url_encode al enviar los datos desde un formulario html por medio del método POST?, es que ese es mi caso

GRACIAS
__________________
http://tecnologiaco.com/
  #11 (permalink)  
Antiguo 08/08/2013, 08:12
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: Envío de datos por url

Ahhh, pero qué necedad!

Antes de que tomes a mal esa expresión sigue leyendo...

Si estás enviando los datos por medio de un formulario:
- Método GET: No es necesario escaparlos, el navegador lo hace automáticamente
- Método POST: Tampoco es necesario escaparlos, no se envían por URL

Tu problema no es directamente el formulario, sino lo que haces después con esos datos.

Si no quieres mostrar tu código no habrá forma de avanzar.
__________________
- León, Guanajuato
- GV-Foto
  #12 (permalink)  
Antiguo 08/08/2013, 08:19
 
Fecha de Ingreso: agosto-2013
Ubicación: Buenos Aires
Mensajes: 26
Antigüedad: 10 años, 8 meses
Puntos: 8
Respuesta: Envío de datos por url

Habia entendido que lo enviabas por GET, coincido en que lo mejor es que pongas tu codigo. Si tienes info que no quieres mostrar, tomate el tiempo para generar una version generica para nosotros.
  #13 (permalink)  
Antiguo 09/08/2013, 06:24
Avatar de andresbetancourt  
Fecha de Ingreso: julio-2008
Ubicación: colombia
Mensajes: 334
Antigüedad: 15 años, 9 meses
Puntos: 2
Respuesta: Envío de datos por url

buenos días a todos,

muchas gracias por querer ayudarme, que pena la demora en la respuesta es que he estado ocupado con el trabajo, en este momento me encuentro en él.

en la noche que esté en mi casa, les paso el código.

gracias
__________________
http://tecnologiaco.com/

Etiquetas: formulario, url, variable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:20.