Foros del Web » Programando para Internet » PHP »

Variables de sesion

Estas en el tema de Variables de sesion en el foro de PHP en Foros del Web. Hola tengo el siguiente codigo en el archivo sesion.php : Código PHP: <? session_start ();  ?> <html> <head> <title>::: Grupo Scout San Benito 18:::</title> <meta http-equiv="" content="text/html; charset=iso-8859-1"> <meta http-equiv="" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset="><style type="text/css"> <!-- body {     background-color: #FFFFFF; } ...
  #1 (permalink)  
Antiguo 14/08/2004, 06:16
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Variables de sesion

Hola tengo el siguiente codigo en el archivo sesion.php :

Código PHP:
<? session_start(); ?>
<html>
<head>

<title>::: Grupo Scout San Benito 18:::</title>
<meta http-equiv="" content="text/html; charset=iso-8859-1">
<meta http-equiv="" content="text/html; charset=iso-8859-1">
<meta http-equiv="Content-Type" content="text/html; charset="><style type="text/css">
<!--
body {
    background-color: #FFFFFF;
}
-->
</style></head>

<body style="font:bold 10px/15px verdana;color:navy">
<?   $ft $_SESSION['fot'];    
      
          if (
$xx == "siguiente"
          {
           
$_SESSION['fot'] = $ft 6;
          }
          else if(
$xx == "anterior")
          {
           
$_SESSION['fot'] = $ft 6;
          } 
         else 
          { 
            
$_SESSION['fot'] = "1"
          }
           
?>
<script>
var segundos=0
var direccion='fotos2.php'

milisegundos=segundos*1000
window.setTimeout("window.location.replace(direccion);",milisegundos);

</script>
</body>
</html>
Y en el archivo fotos2.php tengo esto, bueno solo voy a poner lo importante:

Código PHP:
<? session_start(); ?>
<? $num 
$_SESSION['fot']; ?>
<img border="0" height="95" width="127" src="imagenes/ignacio/Save<?=$num?>.jpg">
<img border="0" height="95" width="127" src="imagenes/ignacio/Save<?=$num+1?>.jpg">
<img border="0" height="95" width="127" src="imagenes/ignacio/Save<?=$num+2?>.jpg">
<img border="0" height="95" width="127" src="imagenes/ignacio/Save<?=$num+3?>.jpg">
<img border="0" height="95" width="127" src="imagenes/ignacio/Save<?=$num+4?>.jpg">
<img border="0" height="95" width="127" src="imagenes/ignacio/Save<?=$num+5?>.jpg">
Bueno simplemente lo que quiero es que en la pagina fotos2.php me cargue 6 fotos que se llaman save1, save2, save3, save4, save5, y asi sucesivamente hasta la save140, entoces cuando le dan a un vinculo para ver la siguientes 6 fotos (asi esta el vinculo sesion.php?xx=siguiente) pues en la pagina sesion.php la variable de sesion me aumenta 6 y leugo cargar las otras.
Todo esto me funciona perfectamente en local, pero cuando lo subo al servidor donde estoy hospedando mi SITE pues no me sirve, solo carga las 6 primeras. ¿que pudiera estar pasando? ¿que atributos le tengo que decir al proveedor del hospedaje que debe cambiar en la configuracion del servidor para que el codigo me funcione bien?

Gracias por su pronto respuestas, BYE
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #2 (permalink)  
Antiguo 14/08/2004, 16:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al parecer no se está propagando el SID (Identificador Único de sesión) y por eso no propagas esas variables que van en tu sesión.

Por la redirección javacript que haces .. deberías propagar el SID en cookies, lo cual implica la configuración (php.ini o en phpinfo() lo puedes ver):
session.use_cookies = ON

Y un navegador que acepte cookies. (la configuración se puede forzar vía la función ini_set() ..)

Y si no quieres propagar el SID en cookies tendrás que propagar el SID en el URL que apunta en tu rutina javascript a la página que redirecciona:

Código PHP:
var direccion='fotos2.php?<? echo SID ?>'
Y asegurarte que propagues el SID por el URL en todos los redireccionamientos que hagas .. sobre todo tipo javacript .. o header("Location: ...") de PHP o etiquetas HTML: <META .. de refresh> .. casos en que la configuación de PHP:
session.use_trans_sid = ON .. NO sobreescribe esos tipos de redireccionamientos para incrustrar el SID de forma automática.

Puedes leer más sobre el "SID" en:
www.php.net/session

Un saludo,
  #3 (permalink)  
Antiguo 15/08/2004, 09:18
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Hola Cluster!!!
Revise la configuracion del servidor con el "phpinfo()"

Y me sale:

session.use_cookies On On
session.use_trans_sid Off Off

Ya le puse l qu eme dijistes de:
var direccion='fotos2.php?<? echo SID ?>'

Y me sigue pasando lo mismo, aqui en local el codigo me funciona muy bien y me cargar todas las fotos, mientras que arriba en el servidor solo me cargar las 6 primeras y cuando le doy siguiente pues me vuelve a cargar esas 6 primeras fotos.

Revise la configuracion del servidor aqui en mi maquina y esta opcion sale asi:
session.use_trans_sid 1 1

Eso sera el problema???? que otro cambio debo hacerle?

Esta parte no te la entendi bien:
"
Y asegurarte que propagues el SID por el URL en todos los redireccionamientos que hagas .. sobre todo tipo javacript .. o header("Location: ...") de PHP o etiquetas HTML: <META .. de refresh> .. casos en que la configuación de PHP:
session.use_trans_sid = ON .. NO sobreescribe esos tipos de redireccionamientos para incrustrar el SID de forma automática.

"

De verdad gracias por tu tiempo y ayuda BYE
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #4 (permalink)  
Antiguo 15/08/2004, 14:41
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Al parecer .. tanto en tus pruebas locales como en tu "servidor remoto" usas propagación del SID en cookies. Lo cual implica un navegador que acepte cookies.

No sé que versión usas en tu servidor remoto .. pero el uso de los arrays superglobales como $_SESSION se ven condicionadas a una versión de PHP 4.1.0 o superior (revisalo por si acaso).

Podrías ver si realmente está funcionando tus sesiones usando:
echo session_id();

despues de session_start() y viendo que valor toma en cada caso .. desde el primero al último que uses debería ser el mismo, si cambia (lo que ves ahí el ID de sesión, algo tipo: a8df98asdf89sdf98 ...) el SID se está perdiendo en algún punto por qué no se propaga (no pasa en tu cookie o por el URL de un script a otro o a si mismo cuando redireccionas).

Cita:
Esta parte no te la entendi bien:
"
Y asegurarte que propagues el SID por el URL en todos los redireccionamientos que hagas .. sobre todo tipo javacript .. o header("Location: ...") de PHP o etiquetas HTML: <META .. de refresh> .. casos en que la configuación de PHP:
session.use_trans_sid = ON .. NO sobreescribe esos tipos de redireccionamientos para incrustrar el SID de forma automática.

"
Pero .. que cosa no entendistes concretamente? .. Conoces como funcionan las sesiones y que interviene el SID?.

Puedes leer la documentación oficial sobre sesiones en:
www.php.net/session

Un saludo,
  #5 (permalink)  
Antiguo 16/08/2004, 11:14
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Bueno acabo de revisar el version PHP del servidor remoto, que es donde no me esta funcionando mi codigo, porque en local si me sirve, y la version es "PHP Version 4.3.4", mientras voy a revisar al rato lo que me dices del "echo session_id();" y apenas tenga resultado, te aviso y sino pues me tocara leerme el vinculo que me pasas, para ver que sucede. BYE y Gracias nuevamente
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #6 (permalink)  
Antiguo 24/08/2004, 06:05
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Ayuda

Hola Cluster y hola a todos, soy yo de nuevo, de verdad que necesito resolver esto porque tengo mas de 1000 fotos por montar y lo quiero hacer asi de forma automatica y no tener uq emontar una a una.
Sabes que quite todas las $_session para no tener que enrollarme con eso y me estoy pasando el numero de la foto por URL, el codigo lo tengo asi

Donde llamo la foto tengo:

<img border="0" height="95" width="127" src="imagenes/47aniv/DSC0<?=$num?>.jpg">

<img border="0" height="95" width="127" src="imagenes/47aniv/DSC0<?=$num+1?>.jpg">

<img border="0" height="95" width="127" src="imagenes/47aniv/DSC0<?=$num+2?>.jpg">

<img border="0" height="95" width="127" src="imagenes/47aniv/DSC0<?=$num+3?>.jpg">

<img border="0" height="95" width="127" src="imagenes/47aniv/DSC0<?=$num+4?>.jpg">

<img border="0" height="95" width="127" src="imagenes/47aniv/DSC0<?=$num+5?>.jpg">


Tambien tengo el vinculo para SIGUIENTE y para ANTERIOR que me aumenta o dismuniye esa variabvle y la pasa por URL

<a href="cambio.php?xx=no&num=<?=$num?>">&lt;-- Anteriores</a>
<a href="cambio.php?xx=si&num=<?=$num?>" class="Estilo2">Siguientes --&gt; </a>

Y por supuesto el codigo de la pagina cambio.php que me aumenta o disminuye el valor de la variable que tiene el numero de la foto:

<?

if ($xx == "si")
{
$num = $num + 6;
}
else if($xx == "no")
{
$num = $num - 6;
}
else
{
$num = "1384";
}

?>
<script>
var segundos=0
var direccion='aniver.php?num=<?=$num?>'
//var direccion='fotos2.php'

milisegundos=segundos*1000
window.setTimeout("window.location.replace(direcci on);",milisegundos);

</script>

Y ME PASA EL MISMO PROBLEMA, AQUI EN LOCAL ME FUNCIONA EXCELENTEMENTE, PERO ARRIBA EN EL SERVIDOR NO, veo que no se pasa la variable por URL, de por si no lo toma en cuenta, creo que esto debe ser mas facil de solucionar que el problema con la variables de sesion que tenia anteriormente. QUIEN ME PUEDA AYUDAR DE VERDAD SE LO AGRADECERE
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #7 (permalink)  
Antiguo 24/08/2004, 09:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Deberías usar los arrays superglobales:

$_GET en tu caso para acceder a variable externas de tus scripts (las que pasas por el URL en tus link's)

Tal vez en tu servidor remoto use: (php.ini o ver en un phpinfo() ..): register_globals = OFF

Un saludo,
  #8 (permalink)  
Antiguo 24/08/2004, 20:59
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
HolA Cluster gracias por esponder.
Pues si revise ene lservidor arriba y sale:
register_globals Off Off

Entonces tu crees que usando eso que me dices $_GET resolveria el problema????? solo que necesito que me plantees un pequeño ejemplo, para ver como se usa eso, como es la sintaxis y bueno asi yo poder usarlo, si me escribes un pequeño ejemplo de como debria usarlo pues ya estaria resuelto todo

UNA VEZ MAS MUCHAS GRACIAS: BYE
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)
  #9 (permalink)  
Antiguo 24/08/2004, 21:18
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Las variables que llegan desde un link (tus $xx actuales) .. serán:

$_GET['xx']

y si llegan desde un formulario en method="post" .. sería $_POST['nombre_varible']

Un saludo,
  #10 (permalink)  
Antiguo 25/08/2004, 16:34
Avatar de Jeremias  
Fecha de Ingreso: agosto-2003
Ubicación: Caracas
Mensajes: 504
Antigüedad: 20 años, 8 meses
Puntos: 0
Cluster Ya Esta Resuelto mi problema, Gracias A Tu Ayuda, Disculpa Todas Las Molestias Y Bueno Cuidate Mucho, Que Te Valla Muy Bien.
Bye
Gracias
__________________
Atte. Jere
Agradezco su pronta colaboración.
;-) :arriba:Hoy por mi, mañana por ti:arriba: ;-)

Última edición por Jeremias; 25/08/2004 a las 16:42
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 12:01.