Foros del Web » Programando para Internet » PHP »

Madre mía con las sesiones!!

Estas en el tema de Madre mía con las sesiones!! en el foro de PHP en Foros del Web. He mirado la documentacion de php, paso el SID por url de forma automatica (sin usar cookies), en la primera pagina creo la sesion, y ...
  #1 (permalink)  
Antiguo 14/12/2003, 18:44
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Madre mía con las sesiones!!

He mirado la documentacion de php, paso el SID por url de forma automatica (sin usar cookies), en la primera pagina creo la sesion, y me asigna un SID alfanumerico, me lo pasa adecuadamente a la segunda pagina, y lo puedo mostrar con echo SID, pero:

¿puedo acceder al contenido de una variable de sesión creada en la pagina 1 desde la pagina2 cuando unicamente paso el SID por url? o ¿unicamente puedo acceder al SID? en este ultimo caso, ¿puedo autentificar de alguna forma? ¿o son necesarias las cookies?

¿como lo hago?

las paginas q tengo son las siguientes:

pagina1 Propagacion del SID

if ($resultado["usuario"]== $usuario && $resultado["password"]==md5($password))
{
session_start();
$_SESSION["autentificado"]="SI";
echo '<SCRIPT language="javascript">';
echo 'window.location ="administracion.php";';
echo '</SCRIPT>';

}

pagina 2 - administracion

<?
session_start();

echo "hon: ".$_SESSION["autentificado"]; //NO ME MUESTRA
echo SID.'<br>'; //EL CONTENIDO DE AUTENTIFICADO
?>

Conozco las ventajas e inconvenientes del paso de SID por cookies y por url, pero en vuestra opinion ¿cúal es más efectivo?

Muchas gracias a todos.
  #2 (permalink)  
Antiguo 14/12/2003, 18:51
Avatar de nuevo  
Fecha de Ingreso: mayo-2003
Ubicación: Spain
Mensajes: 2.009
Antigüedad: 14 años, 7 meses
Puntos: 2
yo no uso las sessiones para pasar los datos... yo lo hago automaticamente desde un sistema de menu pregenerado... y luego uso el ID de la base de datos para moverme por ella con los registros seleccionados...

yo lo quise hacer como tu... pero no me llego a convencer, de esto ya hace unos meses... asiq ya me olvide del tema..
__________________
3w.valenciadjs.com
3w.laislatv.com
  #3 (permalink)  
Antiguo 14/12/2003, 18:58
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 0
RE...

como es eso q haces, explicame un poko, porqué no entiendo muy bien lo que me quieres decir, y me gustaría saber si lo que estoy haciendo sirve para algo.

Saludos. Gracias por tu contestación.
  #4 (permalink)  
Antiguo 15/12/2003, 02:48
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

luiscar, o mucho me equivoco, o no estas propagando bien el SID por URL. Porque la propagacion "automagica" del SID no se hace en javascript. Solo afecta a los tags HTML especificados en el php.ini en la directiva url_rewriter.tags.

Si quieres haz esta prueba:
Código PHP:
if ($resultado["usuario"]== $usuario && $resultado["password"]==md5($password))
{
session_start(); 
$_SESSION["autentificado"]="SI"
echo 
'SID1: '.SID;
echo 
'<SCRIPT language="javascript">';
echo 
'window.location ="administracion.php";'
echo 
'</SCRIPT>'


y
Código PHP:
<? 
session_start
(); 

echo 
"hon: ".$_SESSION["autentificado"]; //NO ME MUESTRA 
echo 'SID2:'.SID.'<br>'//EL CONTENIDO DE AUTENTIFICADO
?>
El texto mostrado en SID1 y SID2 deben ser iguales para que ambos scripts accedan a la misma sesion. Como por javascript no se propagan automagicamente el SID, debes hacerlo manual (como para las redirecciones con header("Location")):
Código PHP:
if ($resultado["usuario"]== $usuario && $resultado["password"]==md5($password))
{
session_start(); 
$_SESSION["autentificado"]="SI"
echo 
'SID1: '.SID;
echo 
'<SCRIPT language="javascript">';
echo 
'window.location ="administracion.php?'.SID.'";'
echo 
'</SCRIPT>'


Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #5 (permalink)  
Antiguo 15/12/2003, 07:04
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
luiscar .. no es bueno repertir la misma pregunta dos veces ..

http://www.forosdelweb.com/s/msg171071.html

Intenta seguir el hilo de las preguntas. Que sinó confundes (yo mismo te respondí en el otro mensaje exactamente lo mismo que aquí Josemi).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 16/12/2003, 10:37
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta ¿header?

Ok!!, entonces, ¿se puede pasar de la pagina1 a la pagina2 el SID con el header location?

Lo intenté de varias formas, pero no lo consigo, ¿la única forma es con java?.

<?
header ("Location: pagina2.php?xxx");
?>
  #7 (permalink)  
Antiguo 16/12/2003, 10:50
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 0
Sonrisa Re: ¿header?

perdonad, joer lo solucioné, sólo me faltaba una comilla.

Gracias de todas formas.

header ("Location: b.php?".SID."");

Gracias a todos.
  #8 (permalink)  
Antiguo 16/12/2003, 11:04
 
Fecha de Ingreso: octubre-2003
Mensajes: 35
Antigüedad: 14 años, 1 mes
Puntos: 0
Sesiones transmitiendo SID.

Me habeis sido todos de gran ayuda. Voy a explicar la transmisión de SID por URL, para todos aquellos que tengan el mismo problema que yo (sin cookies).

En primer lugar hay que configurar PHP.ini de la siguiente manera:

session.save_path = c://php/sesiones //Creas y Cambias la ruta donde se guardan las sessiones.
session.use_cookies = 0 //Sin usar cookies.
session.use_only_cookies = 0
session.use_trans_sid = 1 //para transmitir automaticamente el SID solomente con las etiquetas HTML indicadas en url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeent ry"


OS PONGO un ejemplo de la trasmision de SID

script: a.php

<?
session_start(); // incio de uso de sesiones.
$_SESSION['variable']="hola";
header ("Location: b.php?".SID."");
?>

script: b.php

<?
session_start(); // incio de uso de sesiones.
$variable=$_SESSION['variable']; // asignamos a $variable la
echo "b: ".$variable."<br>";
echo SID."<br>";
session_destroy();
?>

SALUDOS A TODOS.
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 08:40.