15/06/2011, 03:56
|
| Mod on free time | | Fecha de Ingreso: agosto-2008 Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 16 años, 3 meses Puntos: 2237 | |
Respuesta: en local funciona, en remoto no %5C = \
%27 = '
Estas enviando toda la consulta por URL... lo que me parece muy mala practica y: tipo_empresa = 'proveedores' AND t_facturas.id_empresa = '1'
Las comillas simples (o apostrofes) son los causantes de ese %5C porque el servidor remoto seguramente tiene la directiva de PHP magic_quotes en ON y, la solucion rapida seria:
$consulta = stripslashes($_GET['consulta']);
Pero, ya que tienes a la vista muchos datos de la tabla, seria muy facil inyectar codigo malicioso para obtener o dañar la informacion.
Solucion semi-rapida:
1- Envia por URL solo los datos que necesites para filtrar los resultados, ejemplo: ?tipo_empresa=proveedores&id_empresa=1&otro_dato=v alor
2- Tomas cada variable recibida y armas la consulta, verificando que cada campo sea del tipo esperado y pasandolo por mysql_real_escape_string()
Solucion ideal:
Busca informacion sobre seguridad e inyeccion SQL, aplica todo lo que aprendas y no tomes las opciones faciles como enviar toda la consulta por URL. |