Foros del Web » Programando para Internet » PHP »

Variables de Sesión

Estas en el tema de Variables de Sesión en el foro de PHP en Foros del Web. Hola amigos. Lo hago simple y luego me dicen si quieren más código (considero que es un problema algo difícil de resolver). Tengo 3 archivos: ...
  #1 (permalink)  
Antiguo 19/12/2009, 14:34
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Variables de Sesión

Hola amigos. Lo hago simple y luego me dicen si quieren más código (considero que es un problema algo difícil de resolver).
Tengo 3 archivos: 1.php, 2.php y 3.php

Archivo 1.php:

$tabla = acciondisparos; // La variable $tabla se llama acciondisparos
include_once("2.php");

Archivo 2.php,
echo $tabla; //Imprime acciondisparos, me mantiene el valor de la variable sin problemas.
include_once("3.php");

Archivo 3.php
echo $tabla; //No sale nada. Aquí se pierde el valor de la variable.

Mi pregunta es: ¿Cómo puedo hacer para que $tabla mantenga su valor en el archivo 3.php?


Intenté con variables de sesión: cuando pongo "echo $tabla" (usando variables de sesión) en el archivo 2.php me imprime perfectamente acciondisparos, pero en el 3.php no me imprime nada

Archivo 1.php:

$_SESSION['tabla'] = "acciondisparos";
$tabla= "acciondisparos";

2.php

echo $_SESSION['tabla']; // Imprime correctamente el valor acciondisparos

3.php

echo $_SESSION['tabla']; // No imprime nada

NOTA: En los 3 archivos agregué:
session_start();
?>
Al principio de todo, antes del código incluso de la plantilla.
Sigo con el problema, me ayudan un poco? Gracias
  #2 (permalink)  
Antiguo 19/12/2009, 15:38
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Variables de Sesión

no entiendo para que tanto include_once que ademas de ser caro... es caro. <- .

Talvez puedas hacerlo con funciones y definir la variable $tabla como global; o bien, como estas haciendo ahora pero poner la variable $tabla en cookies, que tambien te ahorras un poquito.
  #3 (permalink)  
Antiguo 19/12/2009, 16:13
Avatar de CdG
CdG
 
Fecha de Ingreso: marzo-2008
Mensajes: 114
Antigüedad: 16 años, 1 mes
Puntos: 2
Respuesta: Variables de Sesión

entiendo que tienes esto:

1.php
------------------
<?php
session_start();
$tabla = 'test';
$_SESSION['tabla']= $tabla;
------------------

2.php
------------------
<?php
session_start();
$tabla = $_SESSION['tabla'];
echo $tabla;
------------------

3.php
------------------
<?php
session_start();
$tabla = $_SESSION['tabla'];
echo $tabla;
------------------

se me ocurre que en alguna función de 2.php pierdes el valor de $table
  #4 (permalink)  
Antiguo 19/12/2009, 16:49
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Variables de Sesión

Si CDG, puede ser, pero no estoy seguro. En mi base de datos MySQL tengo 35 tablas. Para ahorrar código, desde diferentes paginas accedo a diferentes tablas. Y hago un select usando la variable $tabla (definida en una pagina previamente). El tema es que cuando uso el otro include(), ya no la tengo definida. Bueno, no entiendo mucho de como se puede perder la variable; pienso que dura para moverte en un include, pero cuando haces otro include de la pagina incluida ahi pierdes variables.
Disculpen, no busco usar cookies u otras cosas, solo quiero usar sesiones del tipo session_start() (cookies no se que es). Bueno, gracias por todo, ya veré como lo soluciono.
  #5 (permalink)  
Antiguo 19/12/2009, 17:19
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Variables de Sesión

Bueno, si te vas a encerrar en una burbuja porque no sabes que es algo, no vas a llegar mucho mas lejos de lo que estas ahora. Si no sabes que es entras en www.google.com escribis cookies+php y haces clic donde dice "Buscar" asi se aprende.

Las cookies son como las sessiones solo que la session se guarda en el servidor, la cookie se guarda en la pc del usuario... Depende para que lo uses se usan sessiones o cookies, por ejemplo para guardar una pass es mas seguro usar una session ya que nadie tiene acceso mas que el mismo php.
  #6 (permalink)  
Antiguo 19/12/2009, 17:32
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Variables de Sesión

Disculpa bioxido, yo no te he faltado el respecto. Por ahora no tengo interés en producir una cookie para tener ciertos datos del usuario que navega, no es necesario. Simplemente, que quiero pasar variables entre archivos. Si sabes, ok, pero no critiques sin motivo por favor.
  #7 (permalink)  
Antiguo 19/12/2009, 17:48
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Variables de Sesión

Bueno, si vos te cerras a diferentes posibilidades......

Las sessiones no se desaparecen solas de un script a otro, porque se guardan en el servidor... si estas pasando las variables por session puede que ser que se pierda porque el script 3 esta en una carpeta por ejemplo carpeta 3, y la session la creaste en la carpeta root. Depende la configuracion de php.ini tambien.

Si no es eso no nos queda otra que pongas el script entero.(si es que estas empesinado son las session)

Tambien podrias usar $_GET o bien hacer el select en cada script, pero no seria rentable tampoco.
  #8 (permalink)  
Antiguo 19/12/2009, 18:04
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Variables de Sesión

Bien, eso es más lógico. Imagina esta situación:
35 archivos: cada archivo llama a una tabla distinta de la base de datos (35 tablas).
En un archivo coloco, por ejemplo $tabla=accion;
En otro archivo coloco, por ejemplo $tabla=disparos; y así sucesivamente.
Estos 35 archivos llaman a un archivo, llamemosle general.php.
Aquí, el select lo hace así:

Cita:
$query = "SELECT count(id) AS Total from $tabla WHERE LENGTH(descripcion)>(0)";
Como vez, si la llamada proviene del archivo que llama a la tabla accion de la base de datos, $tabla se llama accion. Hasta acá todo bien y sin problemas.
El problema viene cuando a partir de este archivo general.php, llamas al archivo rank.php. No los puedo juntar, porque el rank es de un sistema de votacion, que si bien está en el mismo sitio, no tiene nada que ver en funcionamiento con el archivo general.php.
Bueno, revisaré lo que dices de las cookies, aunque sigo pensando que con llamar mediante sesiones a estos dos archivos sería mucho más sencillo y seguro.
Bien, gracias por todo.
  #9 (permalink)  
Antiguo 19/12/2009, 18:18
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Variables de Sesión

Si, bueno... de seguro porsupuesta las sessiones son mas seguras que las cookies y que el metodo $_GET.

Como ya te dije, si la session la creas en la carpeta 'script 1' y despues lo queres leer en la carpeta root (digamos, la principal) no te va a andar, o depende de la configuracion de php.ini

(En el mensaje anterior lo dije alrevez, ahora si lo dije bien)
  #10 (permalink)  
Antiguo 19/12/2009, 18:23
 
Fecha de Ingreso: noviembre-2009
Mensajes: 164
Antigüedad: 14 años, 5 meses
Puntos: 0
Respuesta: Variables de Sesión

Bueno, mi pregunta es un poco filosófica: Porque cuando incluis un archivo se mantiene el valor de las variables, mientras que cuando hay una inclusion dentro del archivo incluido ya se pierden? No es un poco desordenado el php en este aspecto?
  #11 (permalink)  
Antiguo 19/12/2009, 18:28
Avatar de bioxido  
Fecha de Ingreso: diciembre-2008
Ubicación: $_SERVER['PHP_SELF']
Mensajes: 601
Antigüedad: 15 años, 4 meses
Puntos: 21
Respuesta: Variables de Sesión

Umm... no deberia perderse a menos que estes creando la variable despues de incluir el archivo, vale recordar que php se parse de arriba para abajo... si primero queres usar algo que todavia no 'creas' no te va...

Aunque si todo es como vos has dicho, no deberia perderse...

Me imagino que en el 3º include la variable NO la queres usar dentro de una funcion, porque si es asi..tenes que declarar la variable global.
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 17:51.