Foros del Web » Programando para Internet » PHP »

Simbolos Ascii?

Estas en el tema de Simbolos Ascii? en el foro de PHP en Foros del Web. Saludos a todos: Estoy llenando una base de datos usando MYSQL, PHP y flash, desde una pagina flash inserto los valores. Si recupero los valores ...
  #1 (permalink)  
Antiguo 30/12/2003, 10:07
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 20 años, 4 meses
Puntos: 0
Simbolos Ascii?

Saludos a todos:

Estoy llenando una base de datos usando MYSQL, PHP y flash, desde una pagina flash inserto los valores. Si recupero los valores desde la pagina flash, simbolos como "@" "_" "." me los muestra correctamente, pero si los llamo desde una pagina PHP me muestra un valor hexadecimal, la "@" por ejemplo me la muestra como "%40", si miro como se ha insertado el valor en la base veo que ya tiene el simbolo cambiado, asi que es cuando lo registra, y si lo cambio manualmente entonces la pagina php me lo muestra correctamente.
Cual es la solucion, codificar esos datos desde la pagina que los recojo o enviarlos de otra forma, me podeis orientar por favor.

Muchas gracias de antemano.
  #2 (permalink)  
Antiguo 30/12/2003, 10:20
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hola,

El %40 es porque el formulario envia los datos codificados. Mira las funciones urlencode() (www.php.net/urlencode) y urldecode() (www.php.net/urldecode).

Flash muestra correctamente el @ donde recibe el %40 porque Flash entiende la codificacion UTF-8 (creo que es esa la del %40). Sin embargo, cuando PHP muestra el %40, realmente no es PHP el que lo muestra, es el navegador y el HTML. Asi que realmente no es un problema de PHP, sino de codificaciones.

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #3 (permalink)  
Antiguo 30/12/2003, 11:07
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola josemi, gracias por tu atencion.
He mirado lo que me comentas sobre "urldecode" y he encontrado esta funcion pero no se muy bien como incorporarla en mi pagina php, mira te pongo mi codigo a ver si me puedes echar una mano, ha sido una odisea conseguir los primeros resultado con PHP y ahora que las cosas empiezan a marchar me sale este problema y la verdad es que estoy empezando...

Mi pagina:

<html>
<body>

<?
$username="usuario";
$password="usuario";
$database="plantas";

mysql_connect(localhost,$username,$password);
@mysql_select_db($database) or die( "Unable to select database");
$query="SELECT * FROM base WHERE numeroID=1";
$result=mysql_query($query);

$num=mysql_numrows($result);

mysql_close();

echo "<b><center>Database Output</center></b><br><br>";

$i=0;
while ($i < $num) {

$Nombre=mysql_result($result,$i,"Nombre");
$Sinon=mysql_result($result,$i,"sinon");
$Familia=mysql_result($result,$i,"Familia");
$Situacion=mysql_result($result,$i,"Situacion");
$Propiedades=mysql_result($result,$i,"Propiedades" );
$Pes=mysql_result($result,$i,"contactType");
$Num=mysql_result($result,$i,"Num");

echo "<b>$Nombre $Sinon </b><br>Familia: $Familia<br>Situacion: $Situacion<br>Propiedades: $Propiedades<br>Pes: $Pes<br>Num: $Num<br><hr><br>";

++$i;
}

?>

</html>
</body>


La funcion urldecode:

function my_urldecode($string){

_ $array = split ("%",$string);

_ if (is_array($array)){
__ while (list ($k,$v) = each ($array)){
__ _ _ $ascii = base_convert ($v,16,10);
__ _ _ $ret .= chr ($ascii);
__ }
_}
_return ("$ret");
}


Gracias por tu ayuda una vez mas.
  #4 (permalink)  
Antiguo 30/12/2003, 11:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
mm donde fuistes a buscar esa función?

urlencode() y urldecode() son própias de PHP (los links los puso josemi hacia el manual oficial).

¿que se supone que captura Flash de ese código? ... todo?
o esas variables $familia .. etc?.

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 30/12/2003, 11:49
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 20 años, 4 meses
Puntos: 0
Hola, la funcion esa esta en la pagina que comenta josemi, en la de referencia de urldecode, es una aportacion de un usuario.

En este PHP que pongo, flash ya no tiene nada que ver, uso flash para insertar datos en la tabla y lanzar paginas PHP referentes a esos datos, luego quiero capturar desde esas PHP como la que he expuesto algunos datos de esa tabla.
Ahora el problema es esto de los caracteres, que MYSQL me los guarda en hexadecimal, creo, y PHP me los lee tal cual, bueno, PHP no, el explorer y el html, el caso es que he visto que hay funciones para que PHP te lea estos caracteres "%" como principio de un numero hexadecimal y asi poder mostrarte su estado original, el urldecode, sino he entendido mal, son mis primeros pinitos...
La funcion iria en la misma pagina PHP o iria en otra que llama a esta primera?
Lo ideal seria en la primera no?

Sugerencias por favor...

Muchas gracias
  #6 (permalink)  
Antiguo 30/12/2003, 14:52
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Hombre, con la urldecode() directamente seria:
Código PHP:
while ($i $num) {

$Nombre=urldecode(mysql_result($result,$i,"Nombre"));
$Sinon=urldecode(mysql_result($result,$i,"sinon"));
$Familia=urldecode(mysql_result($result,$i,"Familia"));
$Situacion=urldecode(mysql_result($result,$i,"Situacion"));
$Propiedades=urldecode(mysql_result($result,$i,"Propiedades"));
$Pes=urldecode(mysql_result($result,$i,"contactType"));
$Num=urldecode(mysql_result($result,$i,"Num"));

echo 
"<b>$Nombre $Sinon </b><br>Familia: $Familia<br>Situacion: $Situacion<br>Propiedades: $Propiedades<br>Pes: $Pes<br>Num: $Num<br><hr><br>";

++
$i;

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #7 (permalink)  
Antiguo 30/12/2003, 16:28
Avatar de tralara  
Fecha de Ingreso: diciembre-2003
Mensajes: 230
Antigüedad: 20 años, 4 meses
Puntos: 0
Gracias Josemi

Saludos.


P.D. Pronto tendras que invertir el orden de los valores de tu firma...
  #8 (permalink)  
Antiguo 30/12/2003, 16:53
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
De nada.

Suerte.

PD: ¿Con PHP5 a la vuelta de la esquina, y otro monton de tecnologias a la vuelta de la esquina? Para bien o para mal, en esto de la informatica nunca estas 100% a la ultima.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 14:38.