Foros del Web » Programando para Internet » PHP »

Ayuda con sesiones

Estas en el tema de Ayuda con sesiones en el foro de PHP en Foros del Web. Tengo un primer script (sesion.php) donde inicio una sesion y registro una variable (tipo array) : session_start; session_register('datos'); $datos = array(); En un segundo script ...
  #1 (permalink)  
Antiguo 28/04/2004, 16:57
 
Fecha de Ingreso: noviembre-2003
Ubicación: México
Mensajes: 72
Antigüedad: 14 años, 1 mes
Puntos: 0
Ayuda con sesiones

Tengo un primer script (sesion.php) donde inicio una sesion y registro una variable (tipo array) :

session_start;
session_register('datos');
$datos = array();

En un segundo script (agrega.php) asigno valores a la variable array $datos :

$datos[] = 5;
$datos[] = 6;

En algun otro script si llamo la variable de sesion $datos NO puedo ver su contenido :

$datos = $_SESSION['datos'];

For ($i=0;$i<count($datos);$i++) {
Echo "Valor de \$datos: " . $datos[$i] . "<br>";
}

La idea es que en cualquier script se puedan ver los valores de la variable de session $datos y poder agregar o eliminar elementos pero NO me los muestra, como si estuviera vacio el array.

He hecho el paso de variables session (tipo caracter) con $_SESSION y trabajan bien pero al hacerlo con un array NO me funciona. NO se que estoy haciendo mal.

Ojala puedan orientarme.

De antemano, Gracias.
  #2 (permalink)  
Antiguo 28/04/2004, 17:46
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 14 años, 5 meses
Puntos: 2
Como estas propagando el SID?

si lo estas propagando por cookies, asumo que si

en cada pagina donde trabajes con las variables de session antes de cualquie html o echo
debe ir
<?
session_start;
?>
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
  #3 (permalink)  
Antiguo 28/04/2004, 18:20
 
Fecha de Ingreso: noviembre-2003
Ubicación: México
Mensajes: 72
Antigüedad: 14 años, 1 mes
Puntos: 0
el SID lo propago atraves de la URL y efectivamente estoy incluyendo en todos los scripts :

<?php

session_start();

?>

antes que cualquier salida html.
  #4 (permalink)  
Antiguo 28/04/2004, 20:29
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 14 años, 1 mes
Puntos: 11
no hay que mezclar las cosas respecto del uso de sesiones.

Cuando se registran las variables con session_register() no se puede acceder a ellas en otro script con $_SESSION[]

Se recomienda esta forma de usarla

pagina1
<?php
session_start();
$_SESSION['datos']="Estos son los datos";
?>

pagina2
<?php
session_start();
echo $_SESSION['datos'];
?>

esta estructura aporta mayor seguridad.
__________________
Dedicado a proyectos web, actualmente desarrollando un sistema de diseño de flyers online muy fácil de usar.
  #5 (permalink)  
Antiguo 29/04/2004, 10:19
 
Fecha de Ingreso: noviembre-2003
Ubicación: México
Mensajes: 72
Antigüedad: 14 años, 1 mes
Puntos: 0
Claudio ya probe el script que me facilitaste y funciona bien.

Pero yo quiero utilizar una variable array en vez de una variable caracter.

Es decir:

Pagina 1
<?php

session_start();
$_SESSION['datos'] = Array();

?>

Pagina 2
<?php

session_start();
Echo $_SESSION['datos'];

*** Me muestra: Array

?>

La pregunta es: Como hago para rellenar el array desde pagina 1 o 2 (o la pagina que sea) y luego poder insertar o eliminar desde cualquier otro script, como si fuera un carro de compras ?
  #6 (permalink)  
Antiguo 29/04/2004, 11:23
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Es normal que te diga "Array" .. si es nu array .. tu variable tendras que recorrerla como tal con algún bucle .. Al final lo que es la sessión es un array bidimensional: [nombre_variable][indice]= tu valor.

Código PHP:
<?
session_start
();
$_SESSION['array']=Array("nose","blabla","etc");
?>

Código PHP:
<?
session_start
();
foreach (
$_SESSION['array'] as $indice => $valor){
echo 
$indice." -> ".$valor."<br>";
}

// o tambien
$miarray=$_SESSION['array'];

echo 
$miarray[1];

// o con un bucle como el foreach() .. for() lo recorres.

?>
Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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 14:54.