FAQ
Hola a todos, espero me puedan ayudar, estoy con un problema en mi
aplicacion...
Intento guardar en una variable de sesion ( $_SESSION['nombreimagen'] ) un
arreglo donde guardo el nombre de una imagen y la ruta y asi para cada
imagen que sube un usuario cuando crea una galeria de imagenes.

La carga del arreglo lo hago de la siguiente manera:

<?php session_start();
if ($_SESSION['nombreimagen']<>""){
//voy agregando en el arreglo las nuevas imagenes
$datos=$_SESSION['nombreimagen'];
$cantidad=count($datos);
$datos[$cantidad]=$nombre;
$datos[$cantidad+1]=$im;
$_SESSION['nombreimagen']=$datos;
}
else {
//la primera vez en la variable de session
// cargo el contenido del arreglo datos
$datos = Array();
$datos[0]=$nombre;
$datos[1]=$im;
$_SESSION['nombreimagen']=$datos;
// print_r($_SESSION['nombreimagen']);
}
?>

una vez que se termina de subir las imagenes se inserta en la base de datos
de la siguiente manera:

$cant=count($_SESSION['nombreimagen']);
$sql="INSERT INTO w20_imagenes (nombre_imagen, ruta, id_galeria) VALUES
('".$_SESSION['nombreimagen'][$cant-2]."','".$_SESSION['nombreimagen'][$cant-1]."',".$id_ultima_galeria.")";
$reult_com=mysql_query($sql);
unset ($_SESSION['nombreimagen'][$cant-2]);
unset ($_SESSION['nombreimagen'][$cant-1]);


Todo funciona correctamente si utilizo el IE pero con mozilla firefox no me
recupera el nombre y la ruta de la imagen , cuando imprimo la variable de
sesion para verificar que contine, esta vacia en mozilla firefox
pero IE tiene todos los datos correctamente.

No se si hay algun problema con este tipo de variables de session en
firefox.
Espero me puedan ayudar.

Desde ya muchas gracias

Saludos!

--
Stella Maris

Search Discussions

  • --- Álvaro --- at Sep 29, 2009 at 7:24 am
    Buenas a todos, me estreno en esta lista de correo

    Yo he tenido problemas similares anteriormente. Resulta que me enteré que en muchos casos da problemas introducir claves numéricas en $_SESSION dado que esta superglobal funciona de manera diferente que una variable normal.
    Lo soluciono simplemente sin usarlo, en tu caso, como idea podria ser usando el nombre como clave del array de session. $datos[$nombre] = $img. o si sigues queriendo hacerlo de la forma que tienes usa serialize para en array de datos y unserialize para meterlo en base de datos.

    Espero haber ayudado

    P.D: Por cierto, no aconsejo para nada introducir una variable de session directamente en una consulta SQL


    Date: Mon, 28 Sep 2009 19:02:29 -0300
    From: stellacamus@gmail.com
    To: php-es@lists.php.net
    Subject: [PHP-ES] Arreglo en variables de session

    Hola a todos, espero me puedan ayudar, estoy con un problema en mi
    aplicacion...
    Intento guardar en una variable de sesion ( $_SESSION['nombreimagen'] ) un
    arreglo donde guardo el nombre de una imagen y la ruta y asi para cada
    imagen que sube un usuario cuando crea una galeria de imagenes.

    La carga del arreglo lo hago de la siguiente manera:

    <?php session_start();
    if ($_SESSION['nombreimagen']<>""){
    //voy agregando en el arreglo las nuevas imagenes
    $datos=$_SESSION['nombreimagen'];
    $cantidad=count($datos);
    $datos[$cantidad]=$nombre;
    $datos[$cantidad+1]=$im;
    $_SESSION['nombreimagen']=$datos;
    }
    else {
    //la primera vez en la variable de session
    // cargo el contenido del arreglo datos
    $datos = Array();
    $datos[0]=$nombre;
    $datos[1]=$im;
    $_SESSION['nombreimagen']=$datos;
    // print_r($_SESSION['nombreimagen']);
    }
    ?>

    una vez que se termina de subir las imagenes se inserta en la base de datos
    de la siguiente manera:

    $cant=count($_SESSION['nombreimagen']);
    $sql="INSERT INTO w20_imagenes (nombre_imagen, ruta, id_galeria) VALUES
    ('".$_SESSION['nombreimagen'][$cant-2]."','".$_SESSION['nombreimagen'][$cant-1]."',".$id_ultima_galeria.")";
    $reult_com=mysql_query($sql);
    unset ($_SESSION['nombreimagen'][$cant-2]);
    unset ($_SESSION['nombreimagen'][$cant-1]);


    Todo funciona correctamente si utilizo el IE pero con mozilla firefox no me
    recupera el nombre y la ruta de la imagen , cuando imprimo la variable de
    sesion para verificar que contine, esta vacia en mozilla firefox
    pero IE tiene todos los datos correctamente.

    No se si hay algun problema con este tipo de variables de session en
    firefox.
    Espero me puedan ayudar.

    Desde ya muchas gracias

    Saludos!

    --
    Stella Maris
    _________________________________________________________________
    Descubre todas las formas en que puedes estar en contacto con amigos y familiares.
    http://www.microsoft.com/windows/windowslive/default.aspx
  • Adolfo Abegg at Oct 2, 2009 at 9:52 am
    Hola Stella,
    Puedes guardar un array u objeto en una variable de sesión de esta manera:
    <?php
    //...
    $usuario = array('nombre' => 'Stella', 'apellido' => 'Maris');
    $_SESSION['datos'] = serialize($usuario);
    //....
    ?>
    luego para obtener los datos en otro página, debes deserializarlo de
    esta manera:
    <?php
    //...
    $usuario_obtenido = unserialize($_SESSION['datos']);
    echo "Nombre: ".$usuario_obtenido['nombre'];
    //...
    ?>

    Espero que sea lo que estás buscando...

    Saludos,

    Adolfo Abegg
    www.adolfoabegg.com



    2009/9/29 Stella <stellacamus@gmail.com>
    Hola a todos, espero me puedan ayudar, estoy con un problema en mi
    aplicacion...
    Intento guardar en una variable de sesion ( $_SESSION['nombreimagen'] ) un
    arreglo donde guardo el nombre de una imagen y la ruta y asi para cada
    imagen que sube un usuario cuando crea una galeria de imagenes.

    La carga del arreglo lo hago de la siguiente manera:

    <?php session_start();
    if ($_SESSION['nombreimagen']<>""){
    //voy agregando en el arreglo las nuevas imagenes
    $datos=$_SESSION['nombreimagen'];
    $cantidad=count($datos);
    $datos[$cantidad]=$nombre;
    $datos[$cantidad+1]=$im;
    $_SESSION['nombreimagen']=$datos;
    }
    else {
    //la primera vez en la variable de session
    // cargo el contenido del arreglo datos
    $datos = Array();
    $datos[0]=$nombre;
    $datos[1]=$im;
    $_SESSION['nombreimagen']=$datos;
    //   print_r($_SESSION['nombreimagen']);
    }
    ?>

    una vez que se termina de subir las imagenes se inserta en la base de datos
    de la siguiente manera:

    $cant=count($_SESSION['nombreimagen']);
    $sql="INSERT INTO w20_imagenes (nombre_imagen, ruta, id_galeria) VALUES
    ('".$_SESSION['nombreimagen'][$cant-2]."','".$_SESSION['nombreimagen'][$cant-1]."',".$id_ultima_galeria.")";
    $reult_com=mysql_query($sql);
    unset ($_SESSION['nombreimagen'][$cant-2]);
    unset ($_SESSION['nombreimagen'][$cant-1]);


    Todo funciona correctamente si utilizo el IE pero con mozilla firefox no me
    recupera el nombre y la ruta de la imagen , cuando imprimo la variable de
    sesion para verificar que contine, esta vacia en mozilla firefox
    pero IE tiene todos los datos correctamente.

    No se si hay algun problema con este tipo de variables de session en
    firefox.
    Espero me puedan ayudar.

    Desde ya muchas gracias

    Saludos!

    --
    Stella Maris
  • Xfedex at Oct 14, 2009 at 2:46 pm

    Todo funciona correctamente si utilizo el IE pero con mozilla firefox no me
    recupera el nombre y la ruta de la imagen , cuando imprimo la variable de
    sesion para verificar que contine, esta vacia en mozilla firefox
    pero IE tiene todos los datos correctamente.

    No se si hay algun problema con este tipo de variables de session en
    firefox.
    Espero me puedan ayudar.
    Stella, las variables de sesion se guardan en el servidor. Usar IE o
    FF es totalmente indiferente.
    De todos modos, tu codigo podria mejorarse bastante.
    Aca va mi sugerencia:
    <?php session_start();
    if (isset($_SESSION['nombreimagen']) AND !count($_SESSION['nombreimagen'])){
    //voy agregando en el arreglo las nuevas imagenes
    $_SESSION['nombreimagen'][] = $nombre;
    $_SESSION['nombreimagen'][] = $im;
    }
    else {
    $_SESSION['nombreimagen']= array();
    $_SESSION['nombreimagen'][] = $nombre;
    $_SESSION['nombreimagen'][] = $im;
    }
    ?>

    Usar $_SESSION['nombreimagen'][] (abrir y cerrar corchetes)
    automaticamente agrega un elemento al arreglo.
    Creo que lo mejor seria que uses keys asociativas tipo:
    $_SESSION['nombreimagen']['nombre'] = $nombre;

    Y para la consulta podrias hacer:
    $sql="INSERT INTO w20_imagenes (nombre_imagen, ruta, id_galeria) VALUES
    ('".$_SESSION['nombreimagen']['nombre']."','".$_SESSION['nombreimagen']['im']."',".$id_ultima_galeria.")";


    Mucho mas facil y sin necesitdad de hacer count() ni nada.

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupphp-general-es @
categoriesphp
postedSep 28, '09 at 10:02p
activeOct 14, '09 at 2:46p
posts4
users4
websitephp.net

People

Translate

site design / logo © 2022 Grokbase