Comunidad de diseño web y desarrollo en internet online

Generar SQL desde flash?

Citar            
MensajeEscrito el 23 Jul 2009 04:31 pm
Hola foro,

soy un asiduo lector del foro y esta es mi primera cuestión. Alguien sabe si se puede pasar una consulta completa desde flash a php para que la ejecute?

En vez de pasar los parametros WHERE al PHP, pasarle la consulta completa:

SELECT DISTINCT acronimo.ACTITU, acronimo.ACENCA, datos.PUNDAT FROM acronimo INNER JOIN datos ON acronimo.ACPUNT=datos.PUNDAT WHERE (datos.CONTDAT="Acuña, José")


Gracias.

Por begin00

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 23 Jul 2009 06:50 pm
Sí, puedes... Pero mejor es como lo estás haciendo ahorita.


saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 23 Jul 2009 07:06 pm
Hola Maikel,

gracias por contestar. Necesitaría hacerlo así por el motivo de que el SQL se genera de forma dinamica en flash, en base a varios datos, relacionando incluso diferentes tablas dependiendo de lo que el usuario va seleccionando.
¿ Como se le puede pasar el SQL ?
¿ Por que motivo dices de no hacerlo así ?

Gracias

Por begin00

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Jul 2009 12:03 am
Creo que ninguna razón que me digas justifique que expongas la seguridad de la aplicación. Flash se ejecuta del lado del cliente, así que no debes exponer datos de la base de datos de ese lado.

Mandas las sentecia sql como cualquier otra variable, cual es la diferencia?

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 24 Jul 2009 09:18 am
Hola Maikel,

dejando de lado por un momento el tema de la seguridad, que como bien dices no hay razones que lo justifiquen.
Mando como tu dices el sql en una unica variable y el resultado es el siguiente:

- SQL sin Where lo ejecuta correctamente.
- SQL con Where de campos numericos lo ejecuta correctamente.
- SQL con Where de campos alfanumericos no ejecuta la consulta. El parametro lo paso entre comillas simples, ejem:

SELECT DISTINCT acronimo.ACTITU, acronimo.ACENCA, datos.PUNDAT FROM acronimo INNER JOIN datos ON acronimo.ACPUNT=datos.PUNDAT WHERE (datos.CONTDAT='Acuña, José')

la variable del php:

$txtsql=$_POST['txtsql'];
$qr = mysql_query($txtsql);


Saludos y gracias por el tiempo dedicado.

Por begin00

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 24 Jul 2009 10:40 am
hola foro,

solucionado!

la consulta que enviaba era:

SELECT DISTINCT acronimo.ACTITU, acronimo.ACENCA, datos.PUNDAT FROM acronimo INNER JOIN datos ON acronimo.ACPUNT=datos.PUNDAT WHERE (datos.CONTDAT="Acuña, José")

y php ejecutaba:

SELECT DISTINCT acronimo.ACTITU, acronimo.ACENCA, datos.PUNDAT FROM acronimo INNER JOIN datos ON acronimo.ACPUNT=datos.PUNDAT WHERE (datos.CONTDAT=\"Acuña, José\")

pone la barra \, de ese modo php entiende que no se trata de una comilla de cierre. Logicamente la consulta es erronea.
La solución es poner en el php la función stripslashes (http://www.hackingballz.com/herramientas/manual-oficial-de-php/function.stripslashes.html), esto elimina las barras que pone.

$txtsql=stripslashes($_POST['txtsql']);
$qr = mysql_query($txtsql);

Saludos y gracias.

Por begin00

3 de clabLevel



 

firefox
Citar            
MensajeEscrito el 28 Jul 2009 02:55 am
Eso es porque tienes magic_quotes en el php.ini activado, un servidor serio lo tendrá desactivado, pero bueno esta bien como lo solucionaste.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.