Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2010, 16:02
Avatar de Thedavids
Thedavids
 
Fecha de Ingreso: octubre-2010
Mensajes: 16
Antigüedad: 13 años, 6 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