Foros del Web » Programando para Internet » PHP »

cadenas, variables, query y otros demonios

Estas en el tema de cadenas, variables, query y otros demonios en el foro de PHP en Foros del Web. Hola... tengo el siguiente problema con cadenas. accedo a la base de datos con el siguiente código tomo la variable del un combobox: $desthote_var = ...
  #1 (permalink)  
Antiguo 07/06/2003, 20:29
 
Fecha de Ingreso: febrero-2003
Mensajes: 165
Antigüedad: 14 años, 10 meses
Puntos: 0
cadenas, variables, query y otros demonios

Hola...

tengo el siguiente problema con cadenas.

accedo a la base de datos con el siguiente código

tomo la variable del un combobox:
$desthote_var = substr_primero($HTTP_GET_VARS["id_destino_selected"]);

se la paso al query:
$str_query = "SELECT * FROM thote where desthote = '$desthote_var'"

HASTA AQUI, todo funciona bien.

ahora tengo que tomar esa query y pasarla como una variable a otra página (esto lo hago a través de una clase de paginado hecha por [email protected], buenísimo trabajo)

propagar es para pasar variables al link:
$rs->propagar("id=1&id_hoteles_searchs=2&hoteles=0&$id _hoteles_selected=0&str_query=$str_query");

EL PROBLEMA:
$str_query = $HTTP_GET_VARS["str_query"];

$str_query me devuelve:

SELECT * FROM thote where catehote = 4 and desthote = \'HAVANA\'=

REPITO: \'HAVANA\'=

por supuesto que en la base de datos no existe \'HAVANA\'=

en mysql la query debe ser:
Select * from thote where desthote = 'HAVANA';

he leído el manual de php y no entiendo bien el tema de las cadenas.

Me pueden ayudar?

Saludos Araj
  #2 (permalink)  
Antiguo 07/06/2003, 23:49
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
y .. yo me pregunto .. ¿para que le pasas por el URL .. la sentencia SQL completa? .. Ademas que no es naaaada seguro:

fijate que yo llego y te hago en tu:

str_query= DELETE FROM tabla

Por poner un ejemplo .. Ahí te ejecuto una sentencia SQL mia .. Fijate lo peligroso que es ..

Lo único que debes pasar por el URL es el valor de tu variable .. por ejemplo: $desthote_var y en el script que lo recoges hacer tu SELECT con esa variable si la requieres ahí .. NUNCA pasar un SQL como parámetro ..

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.

Última edición por Cluster; 07/06/2003 a las 23:51
  #3 (permalink)  
Antiguo 08/06/2003, 00:27
 
Fecha de Ingreso: febrero-2003
Mensajes: 165
Antigüedad: 14 años, 10 meses
Puntos: 0
gracias, no me percaté del peligro.

pero bien estoy pasando solo el valor de las variables y me ocurre lo siguiente:

"id=1&id_hoteles_searchs=2&hoteles=0&$id_hoteles_s elected=0&id_destino_hoteles=1&id_destino_selected =$id_destino_selected"
el final de la cadena se me adiciona '='.
  #4 (permalink)  
Antiguo 08/06/2003, 00:38
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues araujo_guntin ... decias que estás usando una classe para paginación y que estás usando el método de esa classe para propagar tus variables donde obtienes ese caracter de más ...

Tienes dos soluciones:

1) Le preguntas al autor de dicha classe (Webstudio) sobre ese detalle .. Tal vez sea que estas usando mal su classe o podría llegar a ser hasta un "bug" .. con lo cual, si informas al autor podrá corregirlo en beneficio de todos los usuarios de esa classe ..

2) .. Fuerza bruta: .. le quitas ese ultimo caracter a esa cadena ..

Te recomiendo que uses la alternativa 1)

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 08/06/2003, 00:49
 
Fecha de Ingreso: febrero-2003
Mensajes: 165
Antigüedad: 14 años, 10 meses
Puntos: 0
Cluster
ya detecté el error de '=', es de la clase que utilizo.

gracias

amigo Cluster.

en espera de la alternativa 1, estoy utilizando la alternativa 2.


gracias
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 02:39.