Foros del Web » Programando para Internet » PHP »

Problemas con array de sesion

Estas en el tema de Problemas con array de sesion en el foro de PHP en Foros del Web. Hola amigos. A ver si alguien me puede ayudar, pues estoy desesperado.... Mi problema es que quiero construir un array con una varible de session ...
  #1 (permalink)  
Antiguo 04/10/2007, 06:02
 
Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 16 años, 11 meses
Puntos: 0
Problemas con array de sesion

Hola amigos.

A ver si alguien me puede ayudar, pues estoy desesperado....

Mi problema es que quiero construir un array con una varible de session pero el codigo que he generado me funciona solo a medias...

Tengo este codigo:

<?
session_start();
?>

codigo html.........................

<?
if (!isset($_SESSION["idproducto"]))
{
$conexion = mysql_connect('localhost', $_SESSION["user"], $_SESSION["pass"]);

$ddbb=mysql_select_db('presupuestos',$conexion);

$sql1="INSERT INTO productos (idproducto) VALUES (NULL)";

mysql_query($sql1,$conexion);

//recupero el ultimo nº de registro autonumerico que he insertado.
$idproducto = mysql_insert_id($conexion);

//guardo el registro en un array de session
$_SESSION['idproducto'][]=$idproducto;

mysql_close($conexion);
}
else
{
$conexion = mysql_connect('localhost', $_SESSION["user"], $_SESSION["pass"]);

$ddbb=mysql_select_db('presupuestos',$conexion);

$sql1="INSERT INTO productos (idproducto) VALUES (NULL)";

mysql_query($sql1,$conexion);

//recupero el ultimo nº de registro autonumerico que he insertado.
$idproducto = mysql_insert_id($conexion);

//guardo el registro en un array de session
$_SESSION['idproducto'][]=$idproducto;

mysql_close($conexion);
}
?>

Mi gran dilema es que el if funciona correctamente y me generea el array de session, pero cuando vuelvo a entrar en la pagina que contiene este script, al detectar que se ha inicializado el array entra en el else, me ejecuta todo bien menos el añadir un nuevo elemento al array "$_SESSION['idproducto'][]=$idproducto;".

He hecho varias pruebas con otro codigo y no es problema de redimensionar el array ya que se redimensiona automaticamente. De eso estoy seguro.

Este el el codigo que he probado y funciona perfectamente.

if (!isset($_SESSION["idproducto"]))
{

$_SESSION['idproducto'][]=0;

}
else
{
$i=count($_SESSION['idproducto']);
$_SESSION['idproducto'][]=$i;
}

El error que me lanza es el siguiente:

Warning: Cannot use a scalar value as an array in C:\AppServ\www\PRESUPUESTOS\CREARPRESUPUESTO\NUEVO PRODUCTO\NUEVOPRODUCTO_INF.php on line 118

Por fabor si alguien me puede ayudar, se lo agradecere eternamente.

Gracias
  #2 (permalink)  
Antiguo 04/10/2007, 06:25
Avatar de Kelpie  
Fecha de Ingreso: febrero-2002
Ubicación: NorthSpain
Mensajes: 609
Antigüedad: 22 años, 2 meses
Puntos: 8
Re: Problemas con array de sesion

Se me ocurre que tengas REGISTER_GLOBALS en On y que haya conflicto entre la variable local $idproducto y la de la sesión. Una es escalar (la local) y la otra un vector. Al hacer

$idproducto = mysql_insert_id($conexion);

Toma el vector...

Prueba con

$idProd= mysql_insert_id($conexion);
$_SESSION['idproducto'][]=$idProd;
__________________
Kelpie
  #3 (permalink)  
Antiguo 04/10/2007, 07:09
 
Fecha de Ingreso: mayo-2007
Mensajes: 15
Antigüedad: 16 años, 11 meses
Puntos: 0
Re: Problemas con array de sesion

Muchisimas Gracias....

Tienes mar razon que un santo.

Me estaba volviendo loco.

Solo podia ser una tontada como esa.

Gracias de nuevo
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 01:18.