Problemas con arry y url

Recibe cordial saludo de paz y bien.
Te comento que quiero enviar una variable que contiene un array por url.
Te explico lo siguiente:
Código de la página de origen
$compactada=($_POST['ch']);//guarda el valor del array del objeto ch que viene de un formulario
print_r($compactada);
$productos=urlencode(serialize($compactada));
print_r("$productos");
Esto es lo que me arroja el código anterior al probarlo en la web. Quiere decir que hasta aquí no hay ningún problema. Pues quiere decir que los valores del array se están asignando a la variable $productos sin problemas
( [0] => 1 [1] => 4 ) //IMPRESION DE LA VARIABLE $compactada
a%3A2%3A%7Bi%3A0%3Bs%3A1%3A%221%22%3Bi%3A1%3Bs%3A1%3A%224%22%3B%7D //IMPRESION DE LA VARIABLE $productos
AQUI ENVIO LA VARIABLE $productos POR URL ASIGNANDOSELA A goproductos
<form action="guardar_pedidos.php?goproductos=$productos" method="post" enctype="multipart/form-data" name="form1">
ESTE ES EL CODIGO DE LA PAGINA QUE LO RECIBE (guardar_pedidos.php)
<form action="guardar_pedidos.php?goproductos=$productos" accept-charset="UNKNOWN" enctype="multipart/form-data" method="post">
<form action="guardar_pedidos.php?goproductos=$productos" enctype="multipart/form-data" method="post"></form></form>if (isset($_GET['goproductos']));
{
$a=unserialize(urldecode($_GET['goproductos']));
print_r($a);
MENSAJE DE ERROR QUE ME ARROJA EN EL NAVEGADOR
Notice: unserialize(): Error at offset 0 of 10 bytes in c:\inetpub\wwwroot\lhmweb\guardar_pedidos.php on line 8
LO QUE IMPRIME ES
$productos
OSEA NO ME IMPRIME LOS VALORES ASIGNADOS A LA VARIABLE $productos sino el nombre de la variable. Como hago para que me imprime en pantalla los valores de la variable
De antemano muchas Gracias

1 respuesta

Respuesta
1
Antes de nada. ¿Hay algún motivo por el que tengas que enviar los productos codificados en la URL?
Si no es así, te recomiendo que uses una variable de sesión.
Al principio de ambas páginas, debes poner:
<?php
session_start();
?>
Y después en la página de salida, haces:
<?php
$_SESSION["productos"] = $_POST[ch];
?>
y en la de llegada, lo lees tal cual:
<?php
print_r($_SESSION["productos"]);
?>
Mucho más sencillo, ¿no crees?
Te felicito, muchas gracias es la mejor respuesta. Funciono a la perfección.
Ahora me gustaría que me ayudaras en algo. Como hago para varios guardar registros o paquetes de registros primero de una consulta múltiple a una tabla de mysql y lo segundo de un array que contiene varios registros a una tabla
Básicamente el proceso es el mismo: se trata de construir una sentencia SQL que inserte todos los registros de golpe.
Por ejemplo (se habría de adaptar a tu caso):
<?php
$comareg = "";
$sql = "INSERT INTO tutabla (campo1, campo2, campo3) VALUES ";
foreach ($tuarray as $registro) {
  $sql .= "$comareg(";
  $comacampo = "";
  foreach ($registro as $campo) {
    $sql .= $comacampo . $campo;
    $comacampo = ",";
  }
  $sql .= ")";
}
?>
Después sólo tienes que ejecutar la sentencia SQL que insertará todos los registros de golpe.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas