Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] problemas con cadena de texto y apostrofes

Estas en el tema de problemas con cadena de texto y apostrofes en el foro de PHP en Foros del Web. Estimados compañeros, de antemano muchas gracias por su apoyo! Miren tengo el siguiente detalle, realice una consulta en mysql la cual guardo en una variable ...
  #1 (permalink)  
Antiguo 29/07/2013, 17:17
 
Fecha de Ingreso: diciembre-2011
Mensajes: 90
Antigüedad: 13 años
Puntos: 0
problemas con cadena de texto y apostrofes

Estimados compañeros, de antemano muchas gracias por su apoyo!

Miren tengo el siguiente detalle, realice una consulta en mysql la cual guardo en una variable y la envío en un campo hidden, el problema es que al recoger la variable POST en la siguiente página me corta la cadena cuando encuentra un apostrofe ('). esta consulta la tengo que guardar para volver a ejecutarla más tarde, ya intente con addslashes pero aún así no he podido.

Muchas gracias por su tiempo compañeros!
  #2 (permalink)  
Antiguo 29/07/2013, 17:21
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años, 8 meses
Puntos: 406
Respuesta: problemas con cadena de texto y apostrofes

Sin mostrar código es imposible saber que esta pasando...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #3 (permalink)  
Antiguo 29/07/2013, 18:04
 
Fecha de Ingreso: diciembre-2011
Mensajes: 90
Antigüedad: 13 años
Puntos: 0
Respuesta: problemas con cadena de texto y apostrofes

Hola Nemutagk te explico:

Esta consulta se genera a raíz de un formulario y lo guardo en una variable llamada $Busqueda_1 te muestro el codigo corto

Código PHP:
$Busqueda_1 "SELECT tabla1.*, tabla2.* FROM tabla1, tabla2 WHERE ((tabla1.Id_usuario=tabla2.Id_usuario) AND (tabla1.Usuario_dos="") AND (tabla1.Estado='DISTRITO FEDERAL') AND (tabla1.Auto = 'on') AND (tabla2.SistCom = 'on'))";

//realizo el query sin problemas y despues meto esa variable a un hidden en codigo php

 
echo "<form action='guardar_consulta.php' id='form' name='form' method='post'>
<table>
 <tr><td class='Estilo25' height='25' valign='bottom'>
  <input type='hidden' value='$parametros_b' name='parametros'/>
 </td></tr>
 <tr><td>
  <input name='filtro' type='submit' value='Ejecutar filtro'/>
 </td></tr>
</table>
</form>"

En la siguiente pantalla:

Código PHP:
$Parametros1 =  addslashes($_POST['parametros']); 
echo 
$Parametros1
y el resultado es:
SELECT tabla1.*, tabla2.* FROM tabla1, tabla2 WHERE ((tabla1.Id_usuario=tabla2.Id_usuario) AND (tabla1.Usuario_dos="") AND (tabla1.Estado=

En cuanto encuentra la primer apostrofe corta la cadena de texto enviada!
Muchas gracias de antemano

Saludos

Última edición por yamsita; 29/07/2013 a las 18:05 Razón: error de escritura
  #4 (permalink)  
Antiguo 30/07/2013, 05:34
 
Fecha de Ingreso: julio-2011
Ubicación: Granada
Mensajes: 13
Antigüedad: 13 años, 5 meses
Puntos: 3
Respuesta: problemas con cadena de texto y apostrofes

Eso que estás haciendo de enviar código SQL en un input[type='hidden'] es MUY PELIGROSO, ya que podría ser manipulado fácilmente para ejecutar otro código SQL no deseado. Tenlo muy en cuenta si quieres tener a salvo tu base de datos.

¿Por qué no usas, por ejemplo, una variable de sesión?
Código PHP:
$_SESSION["parametros"] = $parametros
Por otro lado, si no consigues hacerlo con addslashes() y stripslashes(), puedes plantearte utilizar la función str_replace():

Código PHP:
$parametros str_replace("\'""'"$parametros); 
  #5 (permalink)  
Antiguo 30/07/2013, 08:52
 
Fecha de Ingreso: diciembre-2011
Mensajes: 90
Antigüedad: 13 años
Puntos: 0
Respuesta: problemas con cadena de texto y apostrofes

Hola antoniofr, muchas gracias.

si tenia eso en cuenta, de hecho intente hacerlo tambien comprimiendo la cadena pero tampoco me dio resultado, intente hacerlo con: gzdeflate, gzinflate gzcompress, gzuncompress (respectivamente)
y nada!
ahora, el detalle aqui es que ya uso una variable de sesion con una identificación. Mi pregunta seria: se pueden enviar dos variables de sesion? o que otra opcion podria usar


muchas gracias nuevamente por tu apoyo
  #6 (permalink)  
Antiguo 30/07/2013, 09:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 90
Antigüedad: 13 años
Puntos: 0
Respuesta: problemas con cadena de texto y apostrofes

antoniofr, efectivamente fue mejor enviarlo como variable de sesión!!
Muchas gracias!

Etiquetas: apostrofes, cadena, mysql, 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 00:32.