Ver Mensaje Individual
  #8 (permalink)  
Antiguo 25/03/2010, 06:40
Avatar de Anastasiaphp
Anastasiaphp
 
Fecha de Ingreso: junio-2006
Ubicación: El patio de mi casa
Mensajes: 196
Antigüedad: 17 años, 10 meses
Puntos: 3
Problema al pasar array por url

Hola de nuevo!

He avanzado un poco en este tema pero aún no he encontrado solución. Lo que he hecho hasta ahora es lo siguiente:

Código PHP:
// Utilizo dos funciones para el envío y recepción de $tipo

function array_envia($array) {

     
$tmp stripslashes($array);
     
$tmp serialize($array);
     
$tmp urlencode($tmp);

     return 
$tmp;
}
function 
array_recibe($url_array) {
     
$tmp stripslashes($url_array);
     
$tmp urldecode($tmp);
     
$tmp unserialize($tmp);

    return 
$tmp;
}

//(…)

// Recojo los datos del formulario y los trato para hacer la búsqueda en la BD
$tipo$_REQUEST['tipo'];

    if (
$tipo !=''){
        
$tipo_array=" AND tipo IN ('";
        
$tipo_array .= implode("' , '"$tipo);
        
$tipo_array .= "')";
        
$where .= "$tipo_array";
    }


// Aquí recibo el array y lo incorporo a la url:
$tipo_ser=array_envia($tipo);
$url=$PHP_SELF "?tipo=$tipo_ser&pagina="
Hasta aquí, todo bien, haciendo un var_dump me aparece:
array(4) { [0]=> string(3) "mp3" [1]=> string(3) "wmv" [2]=> string(3) "avi" [3]=> string(3) "mov" }

Y la url la construye bien:
documentos.php?tipo=a:4:{i:0;s:3:"mp3";i:1;s:3:"wm v";i:2;s:3:"avi";i:3;s:3:"mov";}&pagina=2

El problema viene cuando voy a la página 2, entonces al hacer un var_dump de $tipo me imprime:
string(70) "a:4:{i:0;s:3:\"mp3\";i:1;s:3:\"wmv\";i:2;s:3:\"av i\";i:3;s:3:\"mov\";}"

Y ya no me hace la búsqueda en la base de datos.

Por otro lado, si incorporo la línea
$tipo=array_recibe($tipo);

Entonces no me construye bien el valor tipo en la url, me sale así:
documentos.php?tipo=b:0;&pagina=2


¿Alguna idea?