Foros del Web » Programando para Internet » PHP »

Php + problema con varibles + flash + mysql

Estas en el tema de Php + problema con varibles + flash + mysql en el foro de PHP en Foros del Web. Hola, soy nuevo en el foro, y necesito saber si alguien podría ayudarme con un problema que se me está sucitando entre flash + php ...
  #1 (permalink)  
Antiguo 26/11/2008, 06:08
Avatar de shanshito  
Fecha de Ingreso: noviembre-2008
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 0
Pregunta Php + problema con varibles + flash + mysql

Hola, soy nuevo en el foro, y necesito saber si alguien podría ayudarme con un problema que se me está sucitando entre flash + php + mysql.

Resulta.. que tengo un objeto LoadVars en flash que me envia una variable a php con el nombre de distintos rubros. Por ej: la variable puede ser BUZOS, CAMPERAS, PANTALONES, REMERAS, HOGAR, HERRAMIENTAS, etc...

Todos los strings dentro del objeto LoadVars devuelven algo, salvo REMERAS y HOGAR.

la forma en la que lo envio a php es por medio de un boton de esta manera
ACTIONSCRIPT:
Código:
Código:
btn.onRelease = function():Void{
_global.envio = new LoadVars();
_global.recibir = new LoadVars();
_global.envio.producto = "REMERAS";
_global.envio.sendAndLoad("buscar.php",_global.recibir,"POST");
}
PHP:
Código:
Código:
<?php
header("Content-type: text/xml");
require("conexion.php");

/// ACA va a recibir las variables de flash por medio de post
// $_POST

function dbString($value)
{
	$result = str_replace("'","''",$value);
	return $result;
}

$producto = mysql_real_escape_string($_GET["producto"]) or $producto = mysql_real_escape_string($_POST["producto"]);

$sql = "SELECT cod_formato, descripcion, rubro,fotos,importador,cantidad ";
$sql.= "FROM datos ";
$sql.= "WHERE rubro like '%".dbString($producto)."%' ";
$result  = mysql_query($sql, $conexion);

//$result  = mysql_query("SELECT cod_formato,rubro,descripcion,fotos FROM datos WHERE rubro,cod_formato,descripcion LIKE '%$producto%'", $conexion);
///$result=mysql_query("SELECT prd_codigoformato,prd_codigoimportador FROM productos ", $conexion);

 ///ELSEIF
 //RESULT es igual a otra busueda 
  //De aca para abajo no varia.
  
  print("<Datos>\n");

  while ($row=mysql_fetch_array($result)) 
    {
       print("<Producto><codigo>".$row[0]."</codigo><desc>".$row[1]."</desc><rubro>".$row[2]."</rubro><foto>".$row[3]."</foto><imp>".$row[4]."</imp><can>".$row[5]."</can></Producto>\n");   
    } 
  
  print("</Datos>\n"); 

mysql_close($conexion); 
?>
Bueno, asi deberia de funcionar, pero es rarisimo porq con el srting REMERAS y HOGAR no anda! pero si funciona con todos los demas strings como HERRAMIENTAS, BUZOS, PANTALONES, CAMISAS, etc....

revise la codificación UTF8.
revise si el boton funcionaba bien, cambiando el string a enviar ej: REMERAS por PANTALONES y anda de maravillas.
revise el listado xml, y esos 2 strings llamados REMERAS y HOGAR no poseen caracteres especiales, en ninguno de sus nodos.
juro por mi vida que no puedo entender que es lo que pasa, encima tengo que entregar el laburo y me pasa esto! jaja es muy raro no??

espero que puedan ayudarme aunque sea diciendome por donde debo buscar, porq de verdad ya he probado todo.

gracias y muchas gracias! Saludos
  #2 (permalink)  
Antiguo 26/11/2008, 07:59
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 19
Respuesta: Php + problema con varibles + flash + mysql

Seria mucho mejor si pudieras subir a internet tu codigo y verlo en funcionamiento, una vez tuve un problema similar el error era que en el campo donde puse el nombre habia un espacio en blanco y por eso no lo reconocia.

Para probar usa directamente el codigo PHP, enviandole las variables correspondientes para descartar un error en flash ose en el browser usa
http://localhost/mypage/myscript.php?producto=REMERAS
asi veras si PHP vota algun error o SQL no encuentra datos
  #3 (permalink)  
Antiguo 26/11/2008, 10:25
Avatar de shanshito  
Fecha de Ingreso: noviembre-2008
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Php + problema con varibles + flash + mysql

Hola XLogus

gracias por ser tan copado y rapido por responder mirá!

aca va lo que me da el TamperData:



en este caso, envio y recivo muy bien! se ven las imagenes geniales

pero en este no pasa!!!!


lo mas loko es que no me trae nada

y si listo el xml por medio de html

asi --> http://65.98.8.192/~formatom/buscar.php?producto=REMERAS

sale esto! :



de verdad me superó! jaja gracias!!! muchas muchas gracias por responder!

quiza sea el flash, lo extraño es que cambiando el string REMERAS u HOGAR por otro string ya sea HERRAMIENTAS; COCHES ; CASAS; o lo que sea , anda bien!

SAludos y gracias si a alguien se le ocurre algo!
gracias
  #4 (permalink)  
Antiguo 26/11/2008, 10:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Php + problema con varibles + flash + mysql

Codificación, veo que estas usando ISO, usa utf8_decode para pasar la variable a ISO.

Saludos.
  #5 (permalink)  
Antiguo 26/11/2008, 10:56
Avatar de XLogus  
Fecha de Ingreso: noviembre-2008
Ubicación: AQP
Mensajes: 495
Antigüedad: 15 años, 5 meses
Puntos: 19
Respuesta: Php + problema con varibles + flash + mysql

Si te fijas bien en tu ultimo screenshot, hay un caracter no reconocido, supongo que la codificacion es incorrecta, prueba de borrarlo a ver si funciona. Si funciona pues modifica la codificacion de la pagina, flash, php y la base de datos para que sea la misma.
  #6 (permalink)  
Antiguo 26/11/2008, 11:21
Avatar de shanshito  
Fecha de Ingreso: noviembre-2008
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Php + problema con varibles + flash + mysql

Gracias a ambos 2 por responderme asi!

pero como veran, no la tengo atada con el php.

1° me gustaria saber como codifico la base , o sea que codificacion seria la mejor.

2° que necesito en el php para encodearlo a utf8 y que levante los caracteres especiales.

3° miles de gracias por el consejo.

Saludos!
  #7 (permalink)  
Antiguo 26/11/2008, 12:54
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Php + problema con varibles + flash + mysql

La tabla en la base de datos con que codificación la tienes "latin1_general_ci"?

Prueba utilizando las funciones de codificación para utf-8: utf8_encode($variable) y utf8_decode($variable).
__________________
El hombre sabio vive actuando no pensando en actuar.
  #8 (permalink)  
Antiguo 26/11/2008, 13:04
Avatar de shanshito  
Fecha de Ingreso: noviembre-2008
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Php + problema con varibles + flash + mysql

gracias Happy, entiendo que encodeando la variable, pero para que utilizar decode??
  #9 (permalink)  
Antiguo 26/11/2008, 13:15
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Php + problema con varibles + flash + mysql

La idea es que utilices los dos para que pruebes como se comporta.

Prueba y genera el xml de nuevo y mira si ya te codificó bien.
__________________
El hombre sabio vive actuando no pensando en actuar.
  #10 (permalink)  
Antiguo 26/11/2008, 13:30
Avatar de shanshito  
Fecha de Ingreso: noviembre-2008
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Php + problema con varibles + flash + mysql

hey Happy, gracias de nuevo

pero mira, estoy usando el UTF8

Código:
<?php
header("Content-type: text/xml");
require("conexion.php");

/// ACA va a recibir las variables de flash por medio de post
// $_POST

function dbString($value)
{
	$result = str_replace("'","''",$value);
	return $result;
	$result .= "áéíóúñ&";
        utf8_encode($result);
}

$producto = mysql_real_escape_string($_GET["producto"]) or $producto = mysql_real_escape_string($_POST["producto"]);

$sql = "SELECT cod_formato, descripcion, rubro,fotos,importador,cantidad ";
$sql.= "FROM datos ";
$sql.= "WHERE rubro like '%".dbString($producto)."%' ";
$result  = mysql_query($sql, $conexion);

//$result  = mysql_query("SELECT cod_formato,rubro,descripcion,fotos FROM datos WHERE rubro,cod_formato,descripcion LIKE '%$producto%'", $conexion);
///$result=mysql_query("SELECT prd_codigoformato,prd_codigoimportador FROM productos ", $conexion);

 ///ELSEIF
 //RESULT es igual a otra busueda 
  //De aca para abajo no varia.
  print("<?xml version='1.0' encoding='UTF-8'?>\n<Datos>\n");

  while ($row=mysql_fetch_array($result)) 
    {
       print("<Producto><codigo>".$row[0]."</codigo><desc>".$row[1]."</desc><rubro>".$row[2]."</rubro><foto>".$row[3]."</foto><imp>".$row[4]."</imp><can>".$row[5]."</can></Producto>\n");   
    } 
  
  print("</Datos>\n"); 

mysql_close($conexion); 
?>
la codificacion de la base es utf8_unicode_ci!!!
o sea, que estoy haciendo mal?? gracias!
  #11 (permalink)  
Antiguo 26/11/2008, 13:51
Avatar de happy1783  
Fecha de Ingreso: mayo-2008
Ubicación: Bogotá
Mensajes: 146
Antigüedad: 15 años, 11 meses
Puntos: 1
Respuesta: Php + problema con varibles + flash + mysql

Bueno

1. Revisa la BD en la tabla y revisa si realmente tiene los acentos. En algunas ocasiones suelen aparecer otros caracteres (Ej: común aparecería como comA!n).

2. Prueba a cambiar utf8_endode por utf8_decode, en ocasiones lo toma al contrario.

3. En el flash tienes el System.useCodepage=true ?. Revisalo que tambien puede influir.
__________________
El hombre sabio vive actuando no pensando en actuar.
  #12 (permalink)  
Antiguo 26/11/2008, 15:45
Avatar de shanshito  
Fecha de Ingreso: noviembre-2008
Mensajes: 40
Antigüedad: 15 años, 5 meses
Puntos: 0
De acuerdo Respuesta: Php + problema con varibles + flash + mysql

PROBLEMA RESUELTO!!!

luego de conectar a la base hay que poner esto!

@mysql_query("SET NAMES 'utf8'");

GRACIAS AL SEÑOR RAMON GIUBI DE GOBEINFORMATICA.com

mas que groso el señor!!!



gracias a todos por brindar apoyo!
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:11.