Foros del Web » Programando para Internet » PHP »

uso del SID

Estas en el tema de uso del SID en el foro de PHP en Foros del Web. Buenas; Estoy trabajando con sesiones en una tienda virtual, y mi manual de PHP me dice:" En los enlaces a otras páginas dentro del query_string, ...
  #1 (permalink)  
Antiguo 05/05/2003, 12:15
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Busqueda uso del SID

Buenas;

Estoy trabajando con sesiones en una tienda virtual, y mi manual de PHP me dice:" En los enlaces a otras páginas dentro del query_string, el desarrollador de la aplicación web debe incluir el nombre de la variable que contiene el identificador de sesión con su valor correspondiente. Esta información se encuentra en la constante definida para la gestión de sesiones llamada SID . P. ej: <a href="pagina.php?<?php echo SID ?>">enlace1</a> "

Y no me explica nada más, he buscado por ahí pero he encontrado muy poca información al respecto, por ello acudo a ustedes.

Vamos a ver, ¿esto significa que en el momento que creo una sesión con session_star() todos los enlaces deben de llevar este SID ? Lo digo porque yo he visto tiendas que no llevan dicha constante...

¿Pueden informarme un poco al respecto?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #2 (permalink)  
Antiguo 05/05/2003, 12:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Revisa estos mensaje:

http://www.forosdelweb.com/showthrea...hreadid=127983
http://www.forosdelweb.com/showthrea...hreadid=128638

(Espero que te orienten algo)

En general .. revisa las directivas de configuración del tema sesiones .. El SID se puede propagar de forma atuomática o manual y por el URL o en una Cookie a su vez .. Cada método tiene sus "pro" y sus "contras" .. En esos mensajes que te puse se habla sobre el tema.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #3 (permalink)  
Antiguo 05/05/2003, 12:40
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Muchísimas gracias Cluster, es un placer poder contar siempre con un experto.
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #4 (permalink)  
Antiguo 05/05/2003, 12:52
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Una pregunta más, comentas en el segundo link que me pusiste, que es muy recomendable que el SID aparezca en la URL, pero yo si pongo lo siguiente:

Código PHP:
echo "<tr>";
echo "<td nowrap><div align=\"left\">&nbsp; &nbsp;<A HREF=\"../tienda/categorias.php?"; ?>
<?php "=SID" ?>
<?php 
echo "&producto=$nombre&idioma=es&dato1=ok\"TARGET=\"mainFrame\">
<font face=\"Arial, Helvetica, sans-serif\"><strong>$nombre</strong></font></a></div></td>"
;
echo 
"</tr>";
a no aparece la variable de sesión, sino un "hueco" (espacio en blanco) correspondiente al SID.

¿A qué se debe?

¿Es recomendable definir al SID con una variable y así ponerla en la URL o como lo hice yo?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.
  #5 (permalink)  
Antiguo 05/05/2003, 15:17
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
SID es una constante si quieres usarlo .. pero estás empleando mal la abreviatura de echo .. que seria:

Código PHP:
<?php =SID?>
eso sería equivalente a: (fijate en el manual de PHP oficial)
<?php echo SID; ?>

(las constantes NO ´no se "leen" como cadenas (strings) así que no llevan comillas).

Por otro lado .. el SID lo puedes componer (como en esos mismos mensajes dije):

Código PHP:
$sid=session_name()."=".session_id(); 
El tema de "pasear" el SID en el URL (links etc..) o que viaje en una cookie tambien lo comenté en esos mensajes.

Si el SID lo propagas en Cookies tu sistema será algo mas seguro .. pero necesitas de que los "clientes" (navegadores) que usen tu sistema tengan habilitadas las cookies (y las acepten).

Si el SID lo propagas manualmente (como así lo estas haciendo) y lo añades a tus links .. etc. Obtendras un sistema "compatible" ya que no necesitas de un navegador que acepte cookies para que el SID se propages .. Ademas que si lo haces Manualmente (y desactivas a PHP que lo haga automático) tu programación tendrá control de "a quien" propagas el SID .. así que si haces links externos a tu sitio o a páginas que no requieras de sesiones .. no propagaras el SID ...

Fijate bien en esas directivas de PHP del tema sesiones (que en esos mensajes comento).

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 06/05/2003, 05:05
Avatar de ferent  
Fecha de Ingreso: junio-2002
Ubicación: Madrid
Mensajes: 633
Antigüedad: 15 años, 6 meses
Puntos: 0
Perdona otra vez, sigo con lo mismo.

lo he hecho como me dijiste:

Código PHP:
$sid=session_name()."=".session_id();
echo <
A HREF="../tienda/categorias.php?
s=$sid&producto=$nombre&idioma=es&dato1=ok\"TARGET=\"mainFrame\">
<font face=\"Arial, Helvetica, sans-serif\"><strong>$nombre</strong></font></a>"

Y el link me aparece como muestro:
"http://www.midireccion.com?s=PHPSESSID=5db07816ddfb7cbbc2 6203bdb40b7084&demasvariables"

Eso de que me aparezca PHPSESSID es normal?, sé que equivale al nombre de sesión, pero es que por ejemplo, en este mismo foro no aparece dicho nombre, tan sólo la session_id. ¿es necesario que aparezca? peligra la seguridad de mi web?

Gracias
__________________
Culto es aquel que sabe donde encontrar lo que no sabe.

Última edición por ferent; 06/05/2003 a las 05:07
  #7 (permalink)  
Antiguo 06/05/2003, 11:59
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En este foro aparece tambien el nombre de la sesion .. solo que aquí usaron la función:

s=4fc9c2f4d59141d19827bda6b8fbb37e

session_name("s"); (antes de tu session_start() y siempre que uses un session_start() ...)

Con eso le cambiaron el nombre al que usa aquí .. Lo que a tí te aparece es el nombre de la sesion que PHP le dá por defecto si no se lo cambias ...


En tu caso .. el SID que te puse en $sid .. ya tiene el nombre de de la sesion y el ID de la sesion .. así que NO tienes que ponerla como valor de otra variable ..

Código PHP:
$sid=session_name()."=".session_id();
echo <
A HREF="../tienda/categorias.php?
$sid&producto=$nombre&idioma=es&dato1=ok\"TARGET=\"mainFrame\">
<font face=\"Arial, Helvetica, sans-serif\"><strong>$nombre</strong></font></a>"

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 04:16.