Foros del Web » Programando para Internet » PHP »

Problema con serialize y el unserialize, pase de arreglos por URL

Estas en el tema de Problema con serialize y el unserialize, pase de arreglos por URL en el foro de PHP en Foros del Web. Hola de nuevo ,como les va , me dirijo a este foro de nuevo por que la verdad después de tanto probar y probar el ...
  #1 (permalink)  
Antiguo 04/11/2010, 16:02
Avatar de Thedavids  
Fecha de Ingreso: octubre-2010
Mensajes: 16
Antigüedad: 11 años, 9 meses
Puntos: 0
Pregunta Problema con serialize y el unserialize, pase de arreglos por URL

Hola de nuevo ,como les va , me dirijo a este foro de nuevo por que la verdad después de tanto probar y probar el código que tengo y ver el mismo error casi que me doy por vencido pero aun sigo buscando.

Bien el asunto es asi al principio no tenia ni idea de como pasarme un arreglo por la URL hasta que encontré el serialize y el unserialize uno al parecer y segun lo que lei comprime de alguna forma el arreglo y el otro al resivir el arreglo con $_GET lo descomprime evidentemente por que por la URL no se pueden pasar arreglos asi no mas.. bien. empece hacer las pruebas al principio sin existo pero después de arreglar unas cosas logre que funcionara pero con el código de prueba que es algo asi mas o menos :

Código PHP:
<?php 
$pais
[]=1;
$pais[]=2;
$pais[]=34543;
$pais[]=4;
$arreglo serialize($pais);        
?>
bien sin problemas hay solo me cree el arreglo le meti algunas variables y todo bien el arreglo lo paso por URL atraves de una imagen asi

Código HTML:
<div align="center"><a href="prueba_para_resivir_por_url.php?id_reporte=<?php echo "$arreglo"; ?>" 
onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage
('resultados_imag','','resultados_img_sustitucion.png',1)">
<img src="resultados_img_original.png" alt="resultados_perfiles" 
name="resultados_imag" width="24" height="37" border="0"></a></div> 
y para resivir solo hice asi

Código PHP:
<?php 
$arreglo 
=$_GET['id_reporte'];
$id_reporteunserialize($arreglo);                
 
$var=count($id_reporte);
 echo 
$var."<br>";
for(
$i=0;$i<count($id_reporte);$i++){
echo 
"$id_reporte[$i]"."<br>";
}
?>
hay todo bien me pasa el arreglo de lo mas de bien peroo.. cuando me dispongo a montar mi codigo es un poco mas complejo por lo siguiente el arreglo que me quiero pasar se esta llenado con unos id que me traigo despues de una consulta el codigo es asi :

Código PHP:
<?php 
 
//CONSULTA LOS EXAMENES 
$sql_examenes_de_la_factura="SELECT exa.nombre_examen,exa.id_examenes
                                                 FROM examenes AS exa , factura AS fac , factura_examenes AS fac_exa
                                                 WHERE((fac.id_factura='$id_factura')AND
                                                              (fac.id_factura=fac_exa.id_factura)AND
                                                              (exa.id_examenes = fac_exa.id_examenes))"
;
$res_examenes_de_la_factura=mysql_query($sql_examenes_de_la_factura,$idc)or die (mysql_error());
while (
$datos_examenes=mysql_fetch_array ($res_examenes_de_la_factura)){                                    
?>
        <tr>
          <td colspan="4"><div align="center"><?php echo $datos_examenes['nombre_examen']; ?>&nbsp;</div></td>
<?php 
$arreglo
[]=$datos_examenes['id_examenes'];
// cierre del while de examnes
$var_1serialize ($arreglo);
 
?>
me paso la variable serializada de igualmenera que lo hice en el ejemplo de arriba atravez de la imagen
y recibo de la misma forma que el ejemplo de arriba la unserializo y despues imprimo a ver si me esta pasando los valores y resulta que me sale el siguiente error

Notice: unserialize() [function.unserialize]: Error at offset 9 of 13 bytes in C:\wamp\www\mirilab\prueba_para_resivir_por_url.ph p on line 9

no se que sea eso y de paso me fijo en la URL y aparece algo asi

http://localhost/mirilab/prueba_para_resivir_por_url.php?id_reporte=a:6:{i: 0;s:2:

cuando normalmente la url cuando uno le pasa el arreglo deberia de haber algo asi

http://localhost/mirilab/prueba_para_resivir_por_url.php?id_reporte=a:4:{i: 0;i:1;i:1;i:2;i:2;i:34543;i:3;i:4;}

la verdad es que llevo todo el dia tratando de hubicar el error pero nada

Como siempre si alguien fuera tan amable de prestarme un poco de ayuda le estaria enormente agradecido y como
siempre que Dios los bendiga
  #2 (permalink)  
Antiguo 04/11/2010, 20:12
Avatar de iandrade  
Fecha de Ingreso: septiembre-2006
Ubicación: Xalapa, Veracruz, MÉXICO.
Mensajes: 171
Antigüedad: 15 años, 10 meses
Puntos: 6
Respuesta: Problema con serialize y el unserialize, pase de arreglos por URL

Te recomiendo que en lugar de usar GET uses POST, guarda en un campo de tipo hidden el valor, pero si los datos que pasas estan en el mismo server mejor usa sesiones y te evitas el estar serializando que es un grave problema de seguridad.
__________________
No todo lo que se hace en segundo plano es AJAX

Etiquetas: serialize, url
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 16:51.